Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

rows extraction in matrix depending on a column value

Asked by PK on 28 Jun 2013

I have a 50x50 matrix and n that the last row has 0,1,2 at different locations ie., 0 n 10 rows,1 n 20 rows ad 2 in 20 rows, so depending on the column value how can i extract all rows containing 0 at 50th column and save them in to a single variable

2 Comments

Sean de Wolski on 28 Jun 2013

A small example of your matrix and expected results would make this much easier to grasp.

PK on 28 Jun 2013

@Sean de Wolski A=[1 2 3 0; 1 2 5 0;5 8 6 1;6 8 7 0;5 4 7 2;6 5 8 0] so in this there are 6 rows and depending on fourth element of the row all the rows containing same number are to be pinned up to a single variable ie.,rows 1,2,4,6 are to be stored to a single variable and row 3 to another and row 5 to another.

PK

Products

No products are associated with this question.

1 Answer

Answer by Image Analyst on 28 Jun 2013
Accepted answer

Try this:

% Generate sample data
A=[...
1 2 3 0; 
1 2 5 0;
5 8 6 1;
6 8 7 0;
5 4 7 2;
6 5 8 0]
% Get last column
lastColumn = A(:, end);
% Get zeros
A0 = A(lastColumn == 0, :)
% Get zeros
A1 = A(lastColumn == 1, :)
% Get zeros
A2 = A(lastColumn == 2, :)

In the command window:

A =
     1     2     3     0
     1     2     5     0
     5     8     6     1
     6     8     7     0
     5     4     7     2
     6     5     8     0
A0 =
     1     2     3     0
     1     2     5     0
     6     8     7     0
     6     5     8     0
A1 =
     5     8     6     1
A2 =
     5     4     7     2

0 Comments

Image Analyst

Contact us