3

它一定很简单,但令人惊讶的是,我在这里或通过反复试验找不到这个问题的答案。
我想从矩阵中获取值(根据某些条件)并将值放入向量中。我还需要匹配值的下标索引。有很多数据,所以 for 循环出来了。

这是一个正确(但迭代)的答案:

[I,J] = find(A > 5);
values = zeros(numel(I),1);
for i=1:numel(I)
    values(i) = A(I(i),J(i));
end

我试过values = A(I,J)了,但这是 n-by-n 而不是 n-by-1。

4

1 回答 1

7

您可以将矩阵隐式视为向量(线性索引):

I = find(A > 5);
values = A(I);

请注意,您可以使用逻辑索引更有效地执行此操作:

values = A(A > 5);
于 2010-10-17T22:41:50.063 回答