Reshape an Matlab array

I have the following arrangement (84x2):
RELOADING_PATTERN = [...
26 24
26 35
27 34
27 33
26 33
25 34
25 35
...
] ;
How can I reshape the arrangement to (7x24)?. I tried the reshape function as follows but it doesn't work:
A = reshape(RELOADING_PATTERN(1:84,:),7,24);
I want to get the following array:
A = 26 24 28 24 ...
26 35 29 24 ...
27 34 29 33 ...
27 33 28 33 ...
26 33 27 34 ...
25 34 27 35 ...
25 35 29 34 ...
Thanks in advance.

3 个评论

You are reducing the number of elements by half. What do you want to do with the other half of the elements? Or do you want 7x24?
A=reshape(RELOADING_PATTERN,7,[]);
%or
A=reshape(RELOADING_PATTERN(:,1),7,[]);
Yro
Yro 2020-12-9
编辑:Yro 2020-12-9
Thanks for your reply, sorry I already edited the question, i need to get a 7x24 array. Attached the pattern
Using what you recommend doesn't work, I don't get the desired array,
A=reshape(RELOADING_PATTERN,7,[]);

请先登录,再进行评论。

 采纳的回答

James Tursa
James Tursa 2020-12-9
编辑:James Tursa 2020-12-9
A straightforward assignment:
A = zeros(7,24);
A(:,1:2:end) = reshape(RELOADING_PATTERN(:,1),7,12);
A(:,2:2:end) = reshape(RELOADING_PATTERN(:,2),7,12);
or using permute etc.
A = reshape(permute(reshape(RELOADING_PATTERN',2,7,[]),[2 1 3]),7,24);

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品

版本

R2019a

标签

Community Treasure Hunt

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

Start Hunting!

Translated by