Splitting a matrix into smaller matrices...

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

 Respuesta aceptada

Walter Roberson
Walter Roberson el 20 de Feb. de 2012

3 comentarios

Doron
Doron el 20 de Feb. de 2012
Thanks Walter,
Will this ever be an issue when I am running a code which explicitly successively goes through the unique values at the immediately previous step?
What I mean to say is, my code will be going through values directly from the matrix, rather than some other calculations:
typically:
PU = unique(P(:,1))
PUC = size(PU, 1)
for i = 1:PUC
x = PU(i)
Q{i} = P( P(:, 1) == x)
end
Thanks again
D Howard
Walter Roberson
Walter Roberson el 20 de Feb. de 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.
Doron
Doron el 20 de Feb. de 2012
Thanks for this tip

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 20 de Feb. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by