私は次の問題を抱えています:
両方の行列でエントリがゼロの場合、エントリを削除します。そのような行列のペアが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)
手伝って頂けますか?
私があなたを正しく理解していれば、 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)
このようにおそらく?
x2 = x(find(or((x~=0),(y~=0))))
y2 = y(find(or((x~=0),(y~=0))))
これらは、明らかに、インプレース置換を行わないためx
、 およびy
は変更されません。両方のアレイで同時にそれを行う方法はまだわかりません。
EDIT以下の@mutzmatronのコメントを読んでください