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は変更されません。両方のアレイで同時にそれを行う方法はまだわかりません。

EDIT以下の@mutzmatronのコメントを読んでください

于 2012-08-10T08:58:16.600 に答える