Splitting up a vector into a matrix

Is there a sophisticated way of doing the following;
I have a vector = [ 1 ; 2 ; 3 ; 4 ; 6 ; 10 ; 3 ; 5 ; 3 ]
I would like to put this into another matrix so that; NEW MATRIX = [1 2 3; 4 6 10; 3 5 3];
Many thanks

 採用された回答

José-Luis
José-Luis 2014 年 9 月 17 日
編集済み: José-Luis 2014 年 9 月 17 日

1 投票

data = rand(3);
result = reshape(data,3,3)';

3 件のコメント

Bran
Bran 2014 年 9 月 17 日
THANK YOU VERY MUCH if it was instead a newmatrix with an extra two rows on the end I am guessing this would be result = reshape(data,5,3). Is this correct?
José-Luis
José-Luis 2014 年 9 月 17 日
Yes, please read the documentation on reshape().
Please accept the answer that best solves your problem.
Laura
Laura 2014 年 9 月 17 日
編集済み: Laura 2014 年 9 月 17 日
B = reshape(A,m,n) or B = reshape(A,[m n]) returns the m-by-n matrix B whose elements are taken column-wise from A. An error results if A does not have m*n elements.

サインインしてコメントする。

その他の回答 (1 件)

Roger Stafford
Roger Stafford 2014 年 9 月 17 日

0 投票

new = reshape(v,sqrt(length(v)),[]).'; % <-- The transpose is needed

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2014 年 9 月 17 日

編集済み:

2014 年 9 月 17 日

Community Treasure Hunt

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

Start Hunting!

Translated by