配列からゼロを取り除くにはどうしたらよいですか?
조회 수: 4 (최근 30일)
이전 댓글 표시
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
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 ビッグ データの処理에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!