۱۳۹۲/۰۵/۰۲, ۰۱:۴۴ ق.ظ
در همان کدها، دو ماتریس با نام های C و D ایجاد می کنیم.
ماتریس C درون حلقه for به عنوان نتیجه پردازش بر روی ماتریس B خواهد بود و ماتریس D نیز همان ماتریس نهایی است که نتایج کلی را در آن ذخیره کرده ایم (ماتریس خروجی نهایی).
کدهای متلب به صورت زیر می باشند :
به عنوان مثال، پردازش بر روی B را به صورت دو برابر کردن (ضرب در 2) انتخاب کرده ایم (شما می توانید پردازش مورد نظر خود را بنویسید).
نتیجه یک بار اجرای کد متلب فوق :
مشاهده می کنید که تمامی عناصر ماتریس نهایی (ماتریس D)، دو برابر عناصر ماتریس اولیه (ماتریس A) می باشند. (ماتریس های B و C هم که به طور موقت، درون حلقه for تعریف می شوند.)
ماتریس C درون حلقه for به عنوان نتیجه پردازش بر روی ماتریس B خواهد بود و ماتریس D نیز همان ماتریس نهایی است که نتایج کلی را در آن ذخیره کرده ایم (ماتریس خروجی نهایی).
کدهای متلب به صورت زیر می باشند :
کد:
clear all
close all
clc
A=rand(5,5)
A_size=size(A);
row_divide=2;
column_divide=2;
if (mod(A_size(1),row_divide)==0)
row=floor(A_size(1)/row_divide);
else
row=floor(A_size(1)/row_divide)+1;
end
if (mod(A_size(2),column_divide)==0)
column=floor(A_size(2)/column_divide);
else
column=floor(A_size(2)/column_divide)+1;
end
D=A;
for nn=1:row
for mm=1:column
clear B C
if (nn==row && mm==column)
B=A((nn-1)*row_divide+1:end,(mm-1)*column_divide+1:end);
elseif (nn==row)
B=A((nn-1)*row_divide+1:end,(mm-1)*column_divide+1:mm*column_divide);
elseif (mm==column)
B=A((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:end);
else
B=A((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:mm*column_divide);
end
% your code for processing B matrix
C=B*2;
% save to output matrix
if (nn==row && mm==column)
D((nn-1)*row_divide+1:end,(mm-1)*column_divide+1:end)=C;
elseif (nn==row)
D((nn-1)*row_divide+1:end,(mm-1)*column_divide+1:mm*column_divide)=C;
elseif (mm==column)
D((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:end)=C;
else
D((nn-1)*row_divide+1:nn*row_divide,(mm-1)*column_divide+1:mm*column_divide)=C;
end
end
end
D
به عنوان مثال، پردازش بر روی B را به صورت دو برابر کردن (ضرب در 2) انتخاب کرده ایم (شما می توانید پردازش مورد نظر خود را بنویسید).
نتیجه یک بار اجرای کد متلب فوق :
کد:
A =
0.2760 0.4984 0.7513 0.9593 0.8407
0.6797 0.9597 0.2551 0.5472 0.2543
0.6551 0.3404 0.5060 0.1386 0.8143
0.1626 0.5853 0.6991 0.1493 0.2435
0.1190 0.2238 0.8909 0.2575 0.9293
D =
0.5521 0.9967 1.5025 1.9186 1.6814
1.3594 1.9195 0.5102 1.0944 0.5086
1.3102 0.6808 1.0119 0.2772 1.6286
0.3252 1.1705 1.3982 0.2986 0.4870
0.2380 0.4476 1.7818 0.5150 1.8585
مشاهده می کنید که تمامی عناصر ماتریس نهایی (ماتریس D)، دو برابر عناصر ماتریس اولیه (ماتریس A) می باشند. (ماتریس های B و C هم که به طور موقت، درون حلقه for تعریف می شوند.)
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.