我有一个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