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

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2014년 2월 23일
편집: Azzi Abdelmalek 2014년 2월 23일
A= [5 3 2 6 7 26 4 33 3]
out= reshape(A,3,[])'

댓글 수: 4

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 2014년 2월 23일
편집: Image Analyst 2014년 2월 23일
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 2014년 2월 23일
편집: Christopher 2014년 2월 23일
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?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

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

제품

태그

질문:

2014년 2월 23일

편집:

2014년 2월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by