کدهای متلب زیر رو می نویسیم که یک ماتریس کوچک 5 در 5 را در آن به ماتریس های 2 در 2 تقسیم می کنیم (در حلقه for) و البته تعدادی ماتریس هم با اندازه کوچکتر تولید می شود که به دلیل تقسیم ناپذیر بودن تعداد ردیف ها و ستون ها می باشد :
column_divide تعداد ستون ماتریس که می خواهیم ساخته شود و row_divide هم تعداد ردیف های آن می باشد.
ماتریس A را برای نمونه، بر اساس تعدادی اعداد تصادفی، با تابع rand ، ساخته ایم.
درون حلقه for ، هر بار ماتریس B ساخته می شود که بخشی از ماتریس بزرگ اصلی می باشد. شما این ماتریس رو ارجاع می دهید به تابعی که برای پردازش مورد نظرتون نوشته اید و نتیجه رو هم در ماتریسی دیگر ذخیره می کنید (اینها را باید خودتان طراحی کنید).
علامت های ; را از انتهای تعدادی از خط ها برداشته ام تا نتایج را ببینیم. شما می توانید دوباره در پایان خط ها، علامت ; بنویسید تا خروجی متلب زیاد شلوغ نشود.
نتیجه اجرای کد متلب بالا :
برنامه رو برای چند ماتریس کوچک و اندازه های مختلف تست کنید تا خیالتون راحت بشه که درسته.
موفق باشید دوست عزیز
کد:
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
for nn=1:row
for mm=1:column
clear B
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
end
end
column_divide تعداد ستون ماتریس که می خواهیم ساخته شود و row_divide هم تعداد ردیف های آن می باشد.
ماتریس A را برای نمونه، بر اساس تعدادی اعداد تصادفی، با تابع rand ، ساخته ایم.
درون حلقه for ، هر بار ماتریس B ساخته می شود که بخشی از ماتریس بزرگ اصلی می باشد. شما این ماتریس رو ارجاع می دهید به تابعی که برای پردازش مورد نظرتون نوشته اید و نتیجه رو هم در ماتریسی دیگر ذخیره می کنید (اینها را باید خودتان طراحی کنید).
علامت های ; را از انتهای تعدادی از خط ها برداشته ام تا نتایج را ببینیم. شما می توانید دوباره در پایان خط ها، علامت ; بنویسید تا خروجی متلب زیاد شلوغ نشود.
نتیجه اجرای کد متلب بالا :
کد:
A =
0.7020 0.1878 0.9493 0.2052 0.0217
0.5669 0.2340 0.7054 0.5010 0.4227
0.1226 0.3137 0.8159 0.9157 0.6272
0.2751 0.9777 0.4027 0.2122 0.9548
0.7564 0.7198 0.3657 0.1774 0.0856
B =
0.7020 0.1878
0.5669 0.2340
B =
0.9493 0.2052
0.7054 0.5010
B =
0.0217
0.4227
B =
0.1226 0.3137
0.2751 0.9777
B =
0.8159 0.9157
0.4027 0.2122
B =
0.6272
0.9548
B =
0.7564 0.7198
B =
0.3657 0.1774
B =
0.0856
برنامه رو برای چند ماتریس کوچک و اندازه های مختلف تست کنید تا خیالتون راحت بشه که درسته.
موفق باشید دوست عزیز
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.