احصل على نقاط محددة من المصفوفة باستخدام أمر واحد

0

لنفترض أن لدي هذه المصفوفة:

>> m = magic(4)

m =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

وأريد الوصول إلى هذه المواقف x1 = [1;3] و x2 = [4;3] يعني أريد نتيجة مثل هذه: [13; 6] ، ال [x1(1); x2(1)] و [x1(2); x2(2)] المواقف. x1 و x2 يمكن أن يكون لها أي حجم. حاولت القيام به m(x1, x2) ولكن لم تنجح ... هل هناك طريقة لتحقيق ذلك بأمر واحد؟

1 إجابة

1
افضل جواب

يمكنك الحصول على قيم متعددة بمؤشرات خطية ، على سبيل المثال في حالتك m([13, 6]);

للحصول على مؤشرات خطية ، استخدم sub2ind(size(m), x1, x2); الذي سيولد [13،6] في قضيتك.

الآن فقط قم بلصقها معًا للحصول على بطانة واحدة:

out = m(sub2ind(size(m), x1, x2));
:مؤلف
فوق
قائمة طعام