我想要在預定義位置獲得Matlab矩陣元素的矢量。例如,我有以下將matlab矩陣轉換爲矢量
>> i = [1,2,3];
>> j = [1,3,4];
>> A = [1,2,3,4; 5,6,7,8; 9,10,11,12; 13,14,15,16]
A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
我希望有一個載體,這將使我的A
值在correspongin到i,j
的位置。我試過
A(i,j)
ans =
1 3 4
5 7 8
9 11 12
但這不是我想要的。我想獲得以下內容
>> [A(i(1),j(1)); A(i(2),j(2));A(i(3),j(3))]
ans =
1
7
12
這是什麼matlab語法?請避免提示循環或任何非矢量化形式的內容,因爲我需要快速完成此操作。希望會有一些內置功能。
雖然這樣做會起作用,但它通常是一個糟糕的選擇,因爲它首先在內存中創建一個新的3x3矩陣,然後使用diag函數將該矩陣的大部分放入位桶中。如果你的數組和(i,j)中的點列表都很大,那麼diag技巧將是非常低效的。 – 2009-12-19 12:08:34