Reshape matrix in the desired form

2 ビュー (過去 30 日間)
Konstantinos Tsitsilonis
Konstantinos Tsitsilonis 2018 年 3 月 3 日
編集済み: Andrei Bobrov 2018 年 3 月 3 日
Hi all,
My problem is that I would like to reshape a specific matrix in the form that I desire for my calculations, however I don't seem to be able to get it exactly as I want. Here is the specific example to my problem:
I have the following code:
a = [1 2 3 4] ;
b = [5 6 7 8] ;
[x, y] = meshgrid(a,b) ;
A = x ;
A(:,:,2) = y ;
The above gives me an output as I desire, in the following form:
A(:,:,1) =
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
A(:,:,2) =
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8
At this point, I would like to create another matrix called B, based on A, such that:
B = [1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 8] ;
I have tried using reshape to accomplish the above however I cant get this output from it.
Your help would be appreciated,
KR,
KMT.

採用された回答

David Fletcher
David Fletcher 2018 年 3 月 3 日
B=[reshape(A(:,:,1)',1,16);reshape(A(:,:,2)',1,16)]

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2018 年 3 月 3 日
編集済み: Andrei Bobrov 2018 年 3 月 3 日
a = [1 2 3 4] ;
b = [5 6 7 8] ;
B = [repmat(a,1,4);repelem(b,4)];
or
reshape(permute(A,[2,1,3]),[],2)';

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by