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


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

صعودی

#1
باسلام و خسته نباشید
چطور می توان یک بردار را به صورت صعودی مرتب کرد به طوریکه یک بردار دیگه با همان سایز هم به این بردار مرتبط است و اطلاعات آن نیز به مساوات تغیرات بردار اول تغییر کند مثلا داریم:

کد:
r=[5 3 2 1]

و بردار دومی که با بردار بالایی مرتبط است

کد:
g=[8 9 5 4]

ارتباطشان یعنی عدد 5 از بردار اول دارای درایه 4 و یا عدد 3 از بردار اول دارای درایه 5 است .یعنی هدف این است بردارr به ترتیب صعودی مرتب شود و به مساوات آن المانهای نظیرش در g هم تغییر نکند یعنی جواب خروجی شود:

کد:
r=[1 2 3 5]
g=[4 5 9 8]
پاسخ

صعودی

#2
سلام.
دو بردار A و B رو در نظر می گیریم. A رو به طور صعودی تعریف می کنیم و سپس B را متناسب با تغییرات A ، تغییر می دهیم (A و B را به گونه ای تعریف کردم که چک کردن نتیجه، راحت باشد).
کدهای متلب :

کد:
clear all
close all
clc

A=[4 6 2 9 3];
B=[14 16 12 19 13];

[A,IX]=sort(A)

A_length=length(A);
C=B;
for nn=1:A_length
    B(nn)=C(IX(nn));
end
B

نکته مهم کدها، در استفاده از دستور sort به صورتی است که IX را هم، علاوه بر A مرتب شده، به دست بیاوریم. IX برداری است که نحوه جابجایی عناصر بردار A را برای ما مشخص می کند (با نوشتن شماره عنصرها).
نتیجه اجرای کد متلب بالا :

کد:
A =

     2     3     4     6     9


IX =

     3     5     1     2     4


B =

    12    13    14    16    19

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


پرش به انجمن:


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