查找矩阵中的值并将它们放入向量中

发布于 2024-09-28 08:40:55 字数 322 浏览 5 评论 0原文

它一定很简单,但令人惊讶的是我无法在这里或通过反复试验找到这个问题的答案。
我想从矩阵中获取值(根据某些条件)并将这些值放入向量中。我还需要匹配值的下标索引。数据很多,所以 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×n 而不是 n×1。

It must be simple, but surprisingly I couldn't find an answer to this problem here or by trial-and-error.
I want to get values out of a matrix (according to some condition) and place the values into a vector. I also need the subscript indices of the matching values. There is a lot of data so for loops are out.

This is a correct (but iterative) answer:

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

I tried values = A(I,J) but this is n-by-n instead of n-by-1.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

燕归巢 2024-10-05 08:40:55

您可以隐式地将矩阵视为向量(线性索引< /a>):

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

请注意,您可以使用 逻辑索引

values = A(A > 5);

You can implicitly treat the matrix like a vector (linear indexing):

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

Note that you can do this more efficiently with logical indexing:

values = A(A > 5);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文