从另一个数组的索引中获取数组的值:Matlab
我有一个20x1双数组从另一个数组的索引中获取数组的值: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
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实例。