برای مرتب کردن تعدادی از المان های عددی به ترتیب صعودی یا نزولی، می توانیم از تابع sort استفاده کنیم. حتی خواهید دید که می توانیم حروف انگلیسی را هم به ترتیب صعودی یا نزولی مرتب کنیم. برویم سراغ موضوع این آموزش و ببینیم عملکرد تابع sort در متلب چگونه است.
به ترتیب کردن درایه های بردار در متلب
مرتب کردن صعودی عناصر بردار با دستور sort در متلب
با وارد کردن بردار به داخل تابع sort در متلب، همه درایه های آن به صورت صعودی ( از کوچک به بزرگ) مرتب می شوند. فرقی هم نمی کند که بردار سطری باشد یا ستونی. مثال زیر را ببینید.
مثال: درایه های بردار A را از کوچک به بزرگ با استفاده از دستور sort در متلب مرتب می کنیم.
مرتب کردن نزولی عناصر یک بردار با تابع sort در متلب
برای نزولی کردن (از بزرگ به کوچک) درایه های یک بردار در متلب، علاوه بر نام بردار باید یک ورودی دیگر به تابع sort بدهیم. عبارت ‘descend’ را در آرگومان دوم وارد می کنیم که به معنای نزولی است. به مثال زیر توجه کنید.
مثال: همان بردار A مربوط به مثال قبل را در نظر بگیرید. این بار این بردار را به صورت نزولی مرتب می کنیم.
به ترتیب کردن درایه های ماتریس در متلب
ماتریس ها را می توان در راستاهای مختلف سطرها، ستون ها و طبقه ها مرتب کرد. هر کدام از این موارد را در ادامه به همراه مثال بررسی می کنیم.
به ترتیب کردن درایه های ماتریس در راستای ستون ها
اگر به طور معمولی از تابع sort استفاده کنیم و صرفا نام بردار را به عنوان ورودی به آن بدهیم، همه درایه ها در جهت ستون ها مرتب می شوند. برای اینکه این موضوع را بهتر درک کنید، به مثال زیر توجه کنید.
مثال: ماتریس B را در نظر بگیرید. این ماتریس را با استفاده از دستور sort در متلب، در راستای ستون ها و به صورت صعودی مرتب می کنیم.
اگر به هر کدام از ستون ها دقت کنید، متوجه می شوید که از بالا به پایین به صورت صعودی مرتب شده است. مثلا ستون اول را در نظر بگیرید. از بالا به پایین: 1 و 2 و3
مثال: با استفاده از عبارت ‘descend’ به عنوان آرگومان دوم، می توانیم درایه های ماتریس را در هر ستون به صورت نزولی مرتب کنیم.
به ترتیب کردن درایه های ماتریس در راستای ردیف ها و طبقه ها
در حالتی که بخواهیم درایه های ماتریس در راستای سطر ها و طبقات مرتب شوند، باید به ترتیب عدد 2 یا 3 را هم به ورودی تابع sort بدهیم. مثال های زیر این موضوع را بهتر روشن می کنند.
مثال: همان ماتریس B مربوط به مثال قبل را این بار در جهت ردیف ها (سطر ها) به صورت صعودی مرتب می کنیم.
مشاهده می کنید که در هر سطر، اعداد از کوچک به بزرگ مرتب شده اند.
مثال: ماتریس B را باز هم در جهت ردیف ها اما این بار به صورت نزولی و از بزرگ به کوچک مرتب می کنیم.
مثال: ماتریس سه بعدی C را در جهت طبقات آن (بعد سوم) از کوچک به بزرگ و به صورت صعودی مرتب می کنیم.
مرتب کردن همه درایه های یک ماتریس به صورت صعودی یا نزولی
برای اینکه کلیه اعداد موجود در یک ماتریس به صورت لیستی از اعداد و از کوچک به بزرگ مرتب شوند، از تابع sort استفاده می کنیم. برای این کار کافی است که مانند مثال های زیر عمل کنیم.
مثال: ماتریس B را مجددا در نظر بگیرید. با استفاده از تابع sort همه درایه های آن را به صورت لیستی از کوچک به بزرگ مرتب می کنیم.
مثال: درایه های ماتریس B را این بار به صورت نزولی مرتب می کنیم.
به ترتیب کردن استرینگ ها و کاراکترهای متنی در متلب
متلب می تواند همه کاراکترها و استرینگ ها را هم به صورت نزولی یا صعودی مرتب کند. ترتیبی هم که اعمال می شود، بر مبنای ترتیب حروف الفبای لاتین است.
دقت کنید که همه عملیات هایی که در بخش های قبلی برای اعداد اجرا کردیم و همه قواعدی که بر اعداد حاکم بودند، در اینجا می توان برای استرینگ ها هم به کار برد.
به عنوان یک نمونه به مثال زیر توجه کنید.
مثال: ماتریس s را در نظر بگیرید. همه درایه های آن را به صورت نزولی در یک لیست ایجاد می کنیم.
دستور issorted در متلب؛ آیا المان ها به ترتیب قرار گرفته اند؟
در بسیاری از کدنویسی ها ممکن است نیاز شود که بررسی کنیم که آیا اعداد داخل یک بردار یا ماتریس به ترتیب قرارگرفته اند یا خیر. در این مواقع می توانیم از تابع issorted برای تشخیص این مطلب استفاده کنیم. اگر جواب «بله» باشد، عدد 1 خروجی تابع است و اگر جواب «خیر» باشد، خروجی تابع عدد 0 خواهد بود.
برای تسلط بهتر و اطلاع از نحوه عملکرد تابع issorted در متلب، حتما مثال های زیر را بررسی کنید.
مثال: بررسی می کنیم که هر کدام از بردارهای زیر به صورت صعودی مرتب شده اند یا خیر.
همان طور که مشاهده می کنید بردار q درایه های نامنظمی دارد و خروجی تابع برای آن برابر 0 است. اما در مورد بردار p که درایه هایش به ترتیب از کوچک به بزرگ هستند، خروجی تابع برابر 1 است.
مثال: می خواهیم ببینیم که آیا اعداد در جهت سطرهای ماتریس A به ترتیب از بزرگ به کوچک (به صورت نزولی) قرار گرفته اند یا خیر. برای چک کردن نزولی بودن عبارت ‘descend’ را وارد می کنیم و برای چک کردن این ترتیب روی سطرها، عدد 2 را وارد می کنیم. (دقیقا همان چیزهایی که در بالا درباره تابع sort گفتیم.)
خروجی عدد 0 خواهد بود. چون فقط سطر اول ترتیب نزولی دارد و بقیه سطرها نامنظم هستند، این خروجی به دست آمده است.
امیدوارم مطلب این قسمت هم برای شما مفید بوده باشد. دقت کنید که لازم است همه این مطالب را به خوبی یاد بگیرید تا در هنگام نیاز از آن ها استفاده کنید. وگرنه ممکن است به تابعی نیاز داشته باشید ولی از وجود آن بی خبر باشید و در نتیجه به مشکلات اساسی برخورد کنید. مثلا فرض کنید نیاز داشته باشید که صعودی بودن یک بردار را چک کنید ولی از وجود تابع issorted بی خبر باشید. مجبور خواهید شد که به یک راه حل جایگزین فکر کنید که در بعضی مواقع به ده ها خط کد اضافه نیاز خواهید داشت و در بعضی مواقع هم ممکن است به نتیجه خاصی نرسید.
در آموزش های بعدی هم همراه ما باشید.