كيف يمكنني فرز مصفوفة ثنائية الأبعاد في MATLAB فيما يتعلق بعمود واحد؟
سؤال
أرغب في فرز مصفوفة وفقًا لعمود معين.هناك sort
وظيفة، ولكنه يفرز كافة الأعمدة بشكل مستقل.
على سبيل المثال، إذا كانت المصفوفة الخاصة بي data
يكون:
1 3
5 7
-1 4
ثم سيكون الإخراج المطلوب (الفرز حسب العمود الأول) هو:
-1 4
1 3
5 7
لكن إخراج sort(data)
يكون:
-1 3
1 4
5 7
كيف يمكنني فرز هذه المصفوفة حسب العمود الأول؟
المحلول
اعتقد ان فرز الوظيفة هي ما تبحث عنه.
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
نصائح أخرى
بديل ل sortrows()
, ، والتي يمكن تطبيقها على سيناريوهات أوسع.
احفظ مؤشرات الفرز للصف/العمود الذي تريد الترتيب حسب:
[~,idx]=sort(data(:,1));
أعد ترتيب كافة الصفوف/الأعمدة وفقًا للمؤشرات التي تم فرزها مسبقًا
data=data(idx,:)
لا تنتمي إلى StackOverflow