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에서 Multidimensional Arrays에 대해 자세히 알아보기

제품

태그

질문:

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