reference elements in a matrix based on values in a vector

I have the 1x9 vector [5 3 2 6 7 26 4 33 3]
I want to obtain the matrix [5 3 2; 6 7 26; 4 33 3] using completely vectorized code. How can this be done?
As a start, I have vectorized code to build the 3x3 matrix [ 1 2 3; 4 5 6; 7 8 9], so that the values are the vector columns, but I don't know how to do the vectorized referencing.
Thanks

 Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 23 de Feb. de 2014
Editada: Azzi Abdelmalek el 23 de Feb. de 2014
A= [5 3 2 6 7 26 4 33 3]
out= reshape(A,3,[])'

4 comentarios

This works, but can it be made more general so that the 3x3 matrix can have any numbers in it?
For instance, if the matrix were [2 5 9; 3 2 1; 5 7 3] the solution would be [3 7 3; 2 3 5; 7 4 2]
Image Analyst
Image Analyst el 23 de Feb. de 2014
Editada: Image Analyst el 23 de Feb. de 2014
There is nothing in "out= reshape(A,3,[])'" that depends on what numbers are in A. Your "A" can be anything - any numbers at all.
So now you have 2D arrays rather than a row vector. But what I don't understand is how you got that solution. Why are there 2 7's in the solution but only one in the "matrix"? Please explain element by element how you got the solution element from the input matrix.
Christopher
Christopher el 23 de Feb. de 2014
Editada: Christopher el 23 de Feb. de 2014
There are two 7's because there are two 5's. The 5th element in the vector is =7. The numbers in the matrix should refer to the column number in the vector. You see?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 23 de Feb. de 2014

Editada:

el 23 de Feb. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by