سلام.
مهمترین مسئله این هست که ما نمی دونیم که ماتریسی که به ما می دهند، چند بعدی است. بنابراین برنامه را به شکلی می نویسیم که برای هر ماتریس دلخواه (با هر ابعادی) قابل اجرا باشه و به مشکل بر نخوره.
کدهای متلب برنامه :
ماتریس A همان ماتریسی است که قراره min رو براش حساب کنیم.
دستور numel ، تعداد کل عناصر یک ماتریس رو به ما میده.
دستور reshape رو به کار بردیم تا ماتریس A به ماتریسی با 1 ردیف و تعدادی ستون (ستون ها به اندازه تعداد کل عناصر ماتریس اولیه) تبدیل بشود.
اولین عنصر ماتریس A را در A_min قرار می دهیم ( A_min متغیری است که قراره مقدار min ماتریس در اون ذخیره بشه).
سپس در حلقه for ، تک تک عناصر ماتریس A را چک می کنیم و هر وقت یک عنصر A از A_min کوچکتر باشد، مقدار آن را در A_min قرار می دهیم.
جواب نهایی A_min در آخر برنامه، در خروجی برنامه متلب، نمایش داده می شود.
نتیجه اجرای کد متلب نوشته شده :
جواب صحیح است.
حالا برنامه رو با یک ماتریس سه بعدی هم چک می کنیم :
نتیجه اجرای کد متلب بالا :
امیدوارم مفید بوده باشه.
مهمترین مسئله این هست که ما نمی دونیم که ماتریسی که به ما می دهند، چند بعدی است. بنابراین برنامه را به شکلی می نویسیم که برای هر ماتریس دلخواه (با هر ابعادی) قابل اجرا باشه و به مشکل بر نخوره.
کدهای متلب برنامه :
کد:
clear all
close all
clc
A=[2 9 1 7; 6 4 5 8]
total_number=numel(A);
A=reshape(A,1,total_number);
A_min=A(1);
for nn=1:total_number
if (A(nn)<A_min)
A_min=A(nn);
end
end
A_min
ماتریس A همان ماتریسی است که قراره min رو براش حساب کنیم.
دستور numel ، تعداد کل عناصر یک ماتریس رو به ما میده.
دستور reshape رو به کار بردیم تا ماتریس A به ماتریسی با 1 ردیف و تعدادی ستون (ستون ها به اندازه تعداد کل عناصر ماتریس اولیه) تبدیل بشود.
اولین عنصر ماتریس A را در A_min قرار می دهیم ( A_min متغیری است که قراره مقدار min ماتریس در اون ذخیره بشه).
سپس در حلقه for ، تک تک عناصر ماتریس A را چک می کنیم و هر وقت یک عنصر A از A_min کوچکتر باشد، مقدار آن را در A_min قرار می دهیم.
جواب نهایی A_min در آخر برنامه، در خروجی برنامه متلب، نمایش داده می شود.
نتیجه اجرای کد متلب نوشته شده :
کد:
A =
2 9 1 7
6 4 5 8
A_min =
1
جواب صحیح است.
حالا برنامه رو با یک ماتریس سه بعدی هم چک می کنیم :
کد:
clear all
close all
clc
A(:,:,1)=[5 6;4 9];
A(:,:,2)=[3 2;7 8]
total_number=numel(A);
A=reshape(A,1,total_number);
A_min=A(1);
for nn=1:total_number
if (A(nn)<A_min)
A_min=A(nn);
end
end
A_min
نتیجه اجرای کد متلب بالا :
کد:
A(:,:,1) =
5 6
4 9
A(:,:,2) =
3 2
7 8
A_min =
2
امیدوارم مفید بوده باشه.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.