我想從矩陣的每一行中獲取不同的列。例如:在每一行中獲取不同的列
A = [1,2;1,4;5,2]
B = [2;2;1]
輸出應該產生:
out = [2;4;5]
因此,在短期:A
是矩陣和B
具有用於每行colums索引。我怎樣才能做到這一點,而不使用循環(如果可能的話)?
我想從矩陣的每一行中獲取不同的列。例如:在每一行中獲取不同的列
A = [1,2;1,4;5,2]
B = [2;2;1]
輸出應該產生:
out = [2;4;5]
因此,在短期:A
是矩陣和B
具有用於每行colums索引。我怎樣才能做到這一點,而不使用循環(如果可能的話)?
可以使用sub2ind於(i,j)的索引轉換爲矩陣線性指數阿
idx = sub2ind(size(A), 1:size(A, 1), B');
A(idx)
ans =
2 4 5
,工程假設矢量B具有儘可能多的條目,因爲有在A.行在上述sub2ind爲B中給出的每一對後續行號(1:尺寸(A,1))和列號生成一個線性索引。
這很好,謝謝。我必須查閱sub2ind的文檔以完全理解這是如何工作的。 – Tim