从另一个数组的索引中获取数组的值:Matlab

从另一个数组的索引中获取数组的值:Matlab,matlab,Matlab,我有一个20x1双数组a,和一个1000x1双数组B 我想得到数组C,其中数组C将是1000x1的两倍,其中B中的值用于索引A中的值,如下所示: C(1) = A(B(1)) C(2) = A(B(2)) ... C(i) = A(B(i)) ... c(1000) = A(B(1000)) 如何做到这一点?我使用for循环完成了它,如下所示,不确定这是否是理想的解决方案: C = zeros(1000,1); for i = 1:1000 C(i,1) = A(B(i)); end

我有一个20x1双数组
a
,和一个1000x1双数组
B

我想得到数组
C
,其中数组
C
将是1000x1的两倍,其中
B
中的值用于索引
A
中的值,如下所示:

C(1) = A(B(1))
C(2) = A(B(2))
...
C(i) = A(B(i))
...
c(1000) = A(B(1000))

如何做到这一点?

我使用for循环完成了它,如下所示,不确定这是否是理想的解决方案:

C = zeros(1000,1);

for i = 1:1000
    C(i,1) = A(B(i));
end 

我使用for循环完成了它,如下所示,不确定这是否是理想的解决方案:

C = zeros(1000,1);

for i = 1:1000
    C(i,1) = A(B(i));
end 

您不需要为此循环,可以直接使用:

C = A(B)
这利用了MATLAB的矩阵索引,这是在使用数组而不是整数时,在MATLAB中处理索引的方式

请看以下文档:

例如:

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

确保B只包含A的有效索引的整数(不小于1或大于A的长度)。

如果不需要循环,可以直接使用:

C = A(B)
这利用了MATLAB的矩阵索引,这是在使用数组而不是整数时,在MATLAB中处理索引的方式

请看以下文档:

例如:

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

确保B只包含A的有效索引的整数(不小于1或大于A的长度)。

标题具有误导性。我以为你在尝试几个Matlab实例。这个标题很容易误导人。我以为你在尝试几个Matlab实例。