I need to divide a matrix in 2, one matrix if has a '0' in column 4:
A = [10 15 17 14; 12 1 14 0;12 5 7 9;1 4 8 0;14 15 7 4]
B = [10 15 17 14;12 5 7 9]
C = [12 1 14 0;1 4 8 0]
Matrix B doesn't have '0' in column 4, and matrix C has '0' in column 4.

답변 (1개)

Image Analyst
Image Analyst 2016년 9월 9일

0 개 추천

I'm not sure why the last row of A is not included in B. So the closest I can get to what you want it:
A = [10 15 17 14; 12 1 14 0;12 5 7 9;1 4 8 0;14 15 7 4]
% B = [10 15 17 14;12 5 7 9]
% C = [12 1 14 0;1 4 8 0]
rowsWithZeros = A(:, 4) == 0
B = A(~rowsWithZeros, :)
C = A(rowsWithZeros, :)
This B will have the last row of A since the last row of A does not have 0 in column 4. If you want to crop off that last row of A for some weird reason, you can do this:
B = A(~rowsWithZeros, :)
B = B(1:end-1, :); % Crop off last row of B.

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2016년 9월 9일

답변:

2016년 9월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by