2

列がゼロで埋められたマトリックスがあり、マトリックスを新しいマトリックスにコピーしたいが、ゼロで列をスキップしたい。

私を助けることができるコマンドはありますか?sparse コマンドで実行しようとしましたが、何が起こっているのかよくわかりませんでした。ゼロはスキップされますが、新しいマトリックスにある列の数を知りたい場合は、初期サイズが表示されます。

4

2 に答える 2

6

とてもシンプルです

>> noZeros = withZeros(:, any( withZeros, 1 ) )

このコマンドは、ゼロ以外のエントリが少なくとも 1 つ含まれる列ごとany( withZeros, 1 )に、長さの論理ベクトルを返しますsize(A,2)truewithZeros

または、列をドロップできます

>> withZeros(:, all( withZeros == 0, 1 ) ) = [];

any詳細については、 とのドキュメントをall参照してください。

于 2013-09-11T06:37:48.163 に答える
6

サイズが 100x100 のランダム行列があるとします。

A = rand(100);

15番目の列がゼロであると仮定しましょう

A(:,15) = 0;

次に、この列を削除できます

A=A(:,any(A))
于 2013-09-11T06:41:02.070 に答える