配列からゼロを取り除くにはどうしたらよいですか?

조회 수: 4 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2024년 11월 21일 0:00
답변: MathWorks Support Team 2024년 11월 21일 6:22

配列からゼロを取り除きたいと考えています。この配列には各行にちょうど1つのゼロが含まれています。例えば、以下の配列があります。

a = [1 4 0 3; 0 1 5 5; 1 0 8 1; 5 4 4 0; 0 1 5 2]

この配列を次のようにしたいです。

a = [1 4 3; 1 5 5; 1 8 1; 5 4 4; 1 5 2]

a(a==0) = []; というコマンドを試しましたが、2000x50の配列が1x98000の配列になってしまい、2000x49の配列にはなりません。何か良い方法はありますか?

채택된 답변

MathWorks Support Team
MathWorks Support Team 2024년 11월 21일 0:00
各行から1つのゼロを取り除き、ゼロ以外の要素で新しい行列を再構築するには、以下のコードを試してください。
a = [1 4 0 3; 0 1 5 5; 1 0 8 1; 5 4 4 0; 0 1 5 2] v = nonzeros(a') newmat = reshape(v, 3, 5)' % 3列5行の行列に変形し、転置
このコードでは、nonzeros 関数を使用してゼロ以外の要素を抽出し、それを reshape 関数で目的の形状に再構築しています。

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 ビッグ データの処理에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!