我有一个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
如何做到这一点?
答案 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