Splitting a matrix into smaller matrices...

1 view (last 30 days)
I have a matrix 1000x3 matrix P which can be generated with the following code: (I call the columns of P: X, Y and Z)
P = [];
for X = 0.1:.1:1;
for Y = 0.01:.01:1;
Z = Y^2 + X;
P = vertcat(P, [X, Y, Z]);
end
end
I now want to create a matrix which contains all of the rows for which X = 0.5, say.
(This will be a 100x3 matrix in this example)
How do I do this?
Many thanks
D Howard

Accepted Answer

Walter Roberson
Walter Roberson on 20 Feb 2012
  3 Comments
Walter Roberson
Walter Roberson on 20 Feb 2012
Use unique() more directly.
[PU, PI, PJ] = unique(P(:,1));
PUC = length(PU);
for i = 1 : PUC
Q{i} = P(PJ == i, :);
end
Notice no floating point comparisons were used.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!