Matlab 如何将多个索引存储到新数组中

Matlab 如何将多个索引存储到新数组中,matlab,indexing,indices,Matlab,Indexing,Indices,我有一列数字,我想找出那些大于10的数字,然后记录它们的指数。我可以通过以下方法对单个索引执行此操作: [y, I] = A(A>10) 其中y存储值,I存储索引,A是矩阵名称 但是MATLAB不允许我对一个以上的索引执行此操作。当我尝试时,它给了我一个错误: “索引不能产生多个结果。” 非常感谢您的帮助,因为我对MATLAB非常陌生,尚未掌握所有技巧。您要求MATLAB返回多个结果,而A(A>10)只返回一个列矩阵。这将是一个正确的方法: I = A > 10; y = A(I)

我有一列数字,我想找出那些大于10的数字,然后记录它们的指数。我可以通过以下方法对单个索引执行此操作:

[y, I] = A(A>10)
其中y存储值,I存储索引,A是矩阵名称

但是MATLAB不允许我对一个以上的索引执行此操作。当我尝试时,它给了我一个错误:

“索引不能产生多个结果。”


非常感谢您的帮助,因为我对MATLAB非常陌生,尚未掌握所有技巧。

您要求MATLAB返回多个结果,而A(A>10)只返回一个列矩阵。这将是一个正确的方法:

I = A > 10;
y = A(I);
或者,如果希望将它们放在一行中,可以执行以下操作:

[y, I] = deal(A(A>10), A>10);

谢谢你做到了。我们还没有讨论过交易功能。在这里写一行没有任何意义。可读性更重要!关于这一点,我有另一个简短的问题:在使用sort()之前,使用命令A(:)将其列式读取为一维矩阵,而不是A>10中的元素,我将如何格式化以索引三个最大值?为此,您需要使用提示:如果A是二维矩阵,请使用命令A(:)将其列式读取为一维矩阵。另请参考@EitanT建议了解更多有关索引的问题。相关问题:(请参阅关于逻辑索引的部分)