在matlab中迭代矩阵

时间:2012-08-10 08:39:02

标签: matlab loops matrix

我有以下问题:

我在两个矩阵中删除条目时它们都为零。如果我有一对这样的矩阵,如何在matlab中为循环正确编写索引? 代码:

x = [0 0 0 1 1 0 5 0 7 0]
y = [0 2 0 1 1 2 5 2 7 0]

idx = ~(x==0 & y==0);

x2 = x(idx)
y2 = y(idx)
你可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你想匹配x和y都为零的元素,所以这样的东西应该有效(没有~}:

idx = (x==0 & y==0);

x2 = x(~idx)
y2 = y(~idx)

修改

或者更简单地说,正如mutzmatron所建议的那样:

idx = (x ~= 0 | y ~= 0);

x2 = x(idx)
y2 = y(idx)

答案 1 :(得分:0)

或许这样吗?

x2 = x(find(or((x~=0),(y~=0))))
y2 = y(find(or((x~=0),(y~=0))))

这些显然不会进行就地替换,因此xy不会更改。我还没有想出如何在两个阵列上同时做到这一点。

编辑阅读下面的@ mutzmatron评论