تعداد فروش | 0 دانشجو |
---|---|
پرسش و پاسخ ها | 0 کاربر |
تاریخ انتشار | 29 خرداد 1401 |
محتوا شامل | سورس کد, ویدیو آموزشی |
سطح تمرین | بسیار ساده, ساده |
سیستم عامل | ویندوز |
نیازمندی ها | matlab |
مدت زمان | 6 دقیقه |
حجم فایل | 13 مگابایت |
در این پست قصد داریم تمرین جستجو در آرایه در متلب را بررسی و پیاده سازی نماییم.
سوال : برنامه ای بنویسید که آرایه ای را دریافت و سپس عدد دیگری دریافت و در آن آرایه جستجو نماید .
نمونه ورودی :
12 3 6
3
نمونه خروجی :
index = 1
ویدیو حل تمرین را مشاهده نمایید.
جستجو در آرایه یکی از مهمترین عملیاتهایی است که در برنامهنویسی متلب انجام میشود.
در این مقاله، به بررسی مفاهیم اساسی جستجو در آرایه و روشهای مختلف آن در متلب پرداخته خواهد شد.
همچنین میتوانید تمرین جستجو دودویی را در زبان سی پلاس پلاس مشاهده نمایید.
یک آرایه در متلب شامل مجموعهای از عناصر است که میتوان با استفاده از شمارهی آنها به آنها دسترسی داشت.
در صورتی که بخواهیم یک عنصر خاص را در یک آرایه پیدا کنیم، میتوانیم از تابع find استفاده کنیم.
این تابع برای یافتن مکان عنصرهایی که شرط مشخصشده را برآورده میکنند، استفاده میشود.
برای مثال، فرض کنید یک آرایه با نام arr داریم و میخواهیم مکان تمامی عناصری که بزرگتر از 5 هستند را پیدا کنیم.
در این صورت، میتوانیم با استفاده از تابع find، به صورت زیر عمل کنیم:
arr = [1, 6, 2, 8, 3, 9, 4, 7, 5]; idx = find(arr > 5);
در این کد، ابتدا آرایه arr با مقادیری که در بالا آمدهاند، تعریف شده است.
سپس با استفاده از تابع find، مکان عناصری که بزرگتر از 5 هستند، در متغیر idx ذخیره میشود.
در نهایت، با استفاده از تابع disp، محتویات متغیر idx چاپ میشود:
disp(idx);
این کد باید مکان عناصری را که بزرگتر از 5 هستند، چاپ کند. در اینجا، خروجی به صورت زیر خواهد بود:
2 4 6 8
در این خروجی، شمارهی عناصری که بزرگتر از 5 هستند، چاپ میشود.
مثال مرتبط: ایجاد هاشور در ماتریس با متلب
با استفاده از این توابع، میتوان به راحتی عملیات جستجو در آرایه را انجام داد.
به عنوان مثال، فرض کنید یک آرایه با نام arr داریم و میخواهیم مکان عنصری که برابر با 5 است را پیدا کنیم.
در این صورت، میتوانیم با استفاده از تابع find، به صورت زیر عمل کنیم:
arr = [1, 6, 2, 8, 3, 9, 4, 7, 5]; idx = find(arr == 5);
در این کد، ابتدا آرایه arr با مقادیری که در بالا آمدهاند، تعریف شده است.
سپس با استفاده از تابع find و شرط arr == 5، مکان عنصری که برابر با 5 است، در متغیر idx ذخیره میشود.
در نهایت، با استفاده از تابع disp، محتویات متغیر idx چاپ میشود:
disp(idx);
این کد باید مکان عنصری را که برابر با 5 است، چاپ کند.
در اینجا، خروجی به صورت زیر خواهد بود:
9
به علاوه، میتوان با استفاده از تابع ismember، عضویت یک یا چند مقدار در یک آرایه را بررسی کرد.
به عنوان مثال، فرض کنید یک آرایه با نام arr داریم و میخواهیم بررسی کنیم که آیا عدد 5 در آرایه وجود دارد یا خیر.
در این صورت، میتوانیم با استفاده از تابع ismember، به صورت زیر عمل کنیم:
arr = [1, 6, 2, 8, 3, 9, 4, 7, 5]; tf = ismember(arr, 5);
در این کد، ابتدا آرایه arr با مقادیری که در بالا آمدهاند، تعریف شده است.
سپس با استفاده از تابع ismember و مقدار 5، محتویات آرایه arr بررسی شده و در متغیر tf ذخیره میشود.
در نهایت، با استفاده از تابع disp، محتویات متغیر tf چاپ میشود:
disp(tf);
این کد باید بررسی کند که آیا عدد 5 در آرایه وجود دارد یا خیر.
در اینجا، خروجی به صورت زیر خواهد بود:
0 0 0 0 0 0 0 0 1
در این خروجی، مقدار 1 در مکان آخر نشان میدهد که عدد 5 در آرایه وجود دارد.
به جای استفاده از توابعی مانند find و ismember، میتوان با استفاده از حلقه for، به صورت دستی عملیات جستجو را انجام داد.
در این روش، تمامی عناصر آرایه به صورت تک تک بررسی و در صورتی که شرط مورد نظر برآورده شود، مکان آن در یک متغیر ذخیره میشود.
برای مثال، فرض کنید یک آرایه با نام arr داریم و میخواهیم مکان عنصری که برابر با 5 است را پیدا کنیم.
در این صورت، میتوانیم با استفاده از حلقه for، به صورت زیر عمل کنیم:
arr = [1, 6, 2, 8, 3, 9, 4, 7, 5]; idx = 0; for i = 1:length(arr) if arr(i) == 5 idx = i; break; end end
در این کد، ابتدا آرایه arr با مقادیری که در بالا آمدهاند، تعریف میشود.
سپس با استفاده از حلقه for، تمامی عناصر آرایه بررسی و در صورتی که عنصری که برابر با 5 است پیدا شود، شماره آن در متغیر idx ذخیره میشود.
در نهایت، با استفاده از تابع disp، محتویات متغیر idx چاپ میشود:
disp(idx);
این کد باید مکان عنصری را که برابر با 5 است، چاپ کند.
در اینجا، خروجی به صورت زیر خواهد بود:
9
استفاده از حلقه for برای جستجو در آرایه در برخی موارد میتواند بهترین روش باشد.
به عنوان مثال، در صورتی که آرایه بسیار کوچک باشد، استفاده از حلقه for بهتر از استفاده از توابع جستجوی پیچیده است.
با این حال، در آرایههای بزرگتر، استفاده از توابع جستجوی پیشرفته مانند find و ismember، بهترین روش خواهد بود.
پرسش و پاسخ ها
هنوز بررسیای ثبت نشده است.