انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تابع min

تابع min

#1
سلام، من میخوام تابع min توی متلب پیاده سازی کنم 
لطفا راهنماییم کنید
 
پاسخ

تابع min

#2
سلام.
مهمترین مسئله این هست که ما نمی دونیم که ماتریسی که به ما می دهند، چند بعدی است. بنابراین برنامه را به شکلی می نویسیم که برای هر ماتریس دلخواه (با هر ابعادی) قابل اجرا باشه و به مشکل بر نخوره.
کدهای متلب برنامه :



کد:
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

 امیدوارم مفید بوده باشه. 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

تابع min

#3
خیلی ممنون لطف کردین
پاسخ

تابع min

#4
خواهش می کنم.
موفق باشید.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان