Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
列がゼロで埋められたマトリックスがあり、マトリックスを新しいマトリックスにコピーしたいが、ゼロで列をスキップしたい。
私を助けることができるコマンドはありますか?sparse コマンドで実行しようとしましたが、何が起こっているのかよくわかりませんでした。ゼロはスキップされますが、新しいマトリックスにある列の数を知りたい場合は、初期サイズが表示されます。
とてもシンプルです
>> noZeros = withZeros(:, any( withZeros, 1 ) )
このコマンドは、ゼロ以外のエントリが少なくとも 1 つ含まれる列ごとany( withZeros, 1 )に、長さの論理ベクトルを返しますsize(A,2)。truewithZeros
any( withZeros, 1 )
size(A,2)
true
withZeros
または、列をドロップできます
>> withZeros(:, all( withZeros == 0, 1 ) ) = [];
any詳細については、 とのドキュメントをall参照してください。
any
all
サイズが 100x100 のランダム行列があるとします。
A = rand(100);
15番目の列がゼロであると仮定しましょう
A(:,15) = 0;
次に、この列を削除できます
A=A(:,any(A))