1

我有以下问题:

当两个矩阵中的条目都为零时,我删除条目。如果我有 i 对这样的矩阵,如何在 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)

你能帮助我吗?

4

2 回答 2

1

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

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

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

编辑

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

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

x2 = x(idx)
y2 = y(idx)
于 2012-08-10T08:58:54.673 回答
0

也许像这样?

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

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

编辑阅读下面@mutzmatron 的评论

于 2012-08-10T08:58:16.600 回答