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

时间:2017-03-06 07:23:28

标签: matlab

我有一个20x1双数组<?php //Demo Array $ARRAY = arrauy( "0" => array( "col1"=>"", "col2"=>"", "col3"=>"", "col4"=>"", "col5"=>"", ), "1" => array( "col1"=>"", "col2"=>"", "col3"=>"", "col4"=>"", "col5"=>"", ), "2" => array( "col1"=>"", "col2"=>"", "col3"=>"", "col4"=>"", "col5"=>"", ), "3" => array( "col1"=>"", "col2"=>"", "col3"=>"", "col4"=>"", "col5"=>"", ), "4" => array( "col1"=>"", "col2"=>"", "col3"=>"", "col4"=>"", "col5"=>"", ), ); foreach($ARRAY as $rowkey=>$rowval) { foreach($rowval as $colkey=>$colval) { echo($rowkey); } } ?> 和一个1000x1双数组A

我想获得数组B,其中数组C将是1000x1 double,其中C中的值用于索引B中的值,如下所示:< / p>

A

如何做到这一点?

2 个答案:

答案 0 :(得分:3)

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

C = A(B)

这利用了MATLAB的矩阵索引,这是在使用数组而不是整数时在MATLAB中处理索引的方式。

查看文档:{​​{3}}

例如:

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的长度)。

答案 1 :(得分:0)

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

C = zeros(1000,1);

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