我有一個20x1雙數組A
和一個1000x1雙數組B
。從另一個數組中的索引獲取數組的值:Matlab
我想陣列C
,在其中B
值被用來索引值A
像這樣陣列C
將1000x1雙:
C(1) = A(B(1))
C(2) = A(B(2))
...
C(i) = A(B(i))
...
c(1000) = A(B(1000))
這可怎麼辦呢?
我有一個20x1雙數組A
和一個1000x1雙數組B
。從另一個數組中的索引獲取數組的值:Matlab
我想陣列C
,在其中B
值被用來索引值A
像這樣陣列C
將1000x1雙:
C(1) = A(B(1))
C(2) = A(B(2))
...
C(i) = A(B(i))
...
c(1000) = A(B(1000))
這可怎麼辦呢?
你並不需要爲這個循環,就可以直接使用:
C = A(B)
這利用了MATLAB的矩陣索引,這是在使用數組代替整數時在MATLAB中處理索引的方式。
在文檔請看:https://uk.mathworks.com/help/matlab/math/matrix-indexing.html
例如:
A = [11 12 13];
B = [1 2 3 1 2 3 3 2 1];
C = A(B)
C =
11 12 13 11 12 13 13 12 11
確保乙只包含其是A(的有效索引不小於1或大於A的長度的整數)。
我做到了使用循環,如下圖所示,不知道這是理想的解決方案:
C = zeros(1000,1);
for i = 1:1000
C(i,1) = A(B(i));
end
標題是非常誤導。我以爲你正在嘗試幾個Matlab實例。 – Bernhard