2014-03-31 35 views
0

假設我們有一個二維矩陣A和兩個向量a = (a1,a2,...,an),b = (b1,b2,...,bn)。我的任務是獲得一個包含A元素的矢量,其中的索引取自矢量a,b,即ans = (A(a1,b1), A(a2,b2), A(a3,b3),..., A(an,bn))。有沒有矢量操作,所以我可以在一個操作而不是使用循環?獲取索引存儲在陣列中的矩陣元素,無循環

在這裏使用矩陣類型不是必需的,A可能是單元格數組,表格或其他類型,唯一重要的是允許我形成我描述的向量。

讓事情變得複雜的事情是我不需要只有值,而是改變選定的矩陣元素,所以我不應該從矩陣中提取它們。

目前,我有我的想法,這是不是很聰明的只有一個變種:以線性矩陣A和向量取值,格式A_vectorized(index_vector),其中index_vector從指數的組合,從a形成和b

回答

2

您可以使用函數sub2ind將下標(a,b)轉換爲線性索引。你可以得到你的答案爲

A(sub2ind(size(A),a,b)) 
+0

嘿,它真的有用,非常感謝! – user3479701