Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中不带for循环扫描每列_Matlab_Vectorization - Fatal编程技术网

在MATLAB中不带for循环扫描每列

在MATLAB中不带for循环扫描每列,matlab,vectorization,Matlab,Vectorization,如何在没有的情况下为循环选择正确的值I是a中每列的索引向量。也就是说,I(1)是8和I(2)=11用于基于右侧行和列坐标生成线性索引,然后使用这些来索引到A。在这种情况下,I选择正确的行,并且您希望从第一列到最后一列为每列只选择一个元素: I = [2 1]; A = [7 11 8 17]; 例子 谢谢!这正是我希望找到的。@bishherbas我很高兴。祝你好运@一种可能更快的选择是out=A((0:size(A,1):numel(A)-1)+I)。它的作用与sub2ind相同,

如何在没有
的情况下为
循环选择正确的值
I
a
中每列的索引向量。也就是说,
I(1)是8
I(2)=11

用于基于右侧行和列坐标生成线性索引,然后使用这些来索引到
A
。在这种情况下,
I
选择正确的行,并且您希望从第一列到最后一列为每列只选择一个元素:

I = [2 1];
A = [7 11
     8 17];
例子
谢谢!这正是我希望找到的。@bishherbas我很高兴。祝你好运@一种可能更快的选择是
out=A((0:size(A,1):numel(A)-1)+I)
。它的作用与sub2ind
相同,但避免了一些错误overhead@bisherbas如果你有兴趣,路易斯的建议在这里有相关的基准-
ind = sub2ind(size(A), I, 1:numel(I));
out = A(ind);
>> I = [2 1];
>> A = [7 11
        8 17];
>> ind = sub2ind(size(A), I, 1:numel(I));
>> out = A(ind);
>> out

out =

     8    11