vertical or horizontal array random combination in single array

Hi all
As the title above, suppose i have matrix A like:
A={[12;13] ;[1,5] ;[5;6;7]; [1,3,5,4]};
i want the matrix A have vertical or horizontal array, look like:
A = 12 13 1 5 5 6 7 1 3 5 4
or
A =
12
13
1
5
5
6
7
1
3
5
4
i know for produce horizontal array using:
[[12;13]' [1,5] [5;6;7]' [1,3,5,4]]
and for vertical array using:
[[12;13] ;[1,5]' ;[5;6;7]; [1,3,5,4]']
but note for this situation i work with big and long array, where has the number ; and , various.
I really appreciate the help. tks

 采纳的回答

A={[12;13] ;[1,5] ;[5;6;7]; [1,3,5,4]};
B = cellfun(@(x) x(:), A, 'unif', 0);
C = cat(1,B{:})
C = 11×1
12 13 1 5 5 6 7 1 3 5

更多回答(1 个)

A={[12;13] ;[1,5] ;[5;6;7]; [1,3,5,4]};
% make each element of A a row vector
A = cellfun(@(x)x(:).',A,'UniformOutput',false)
A = 4×1 cell array
{[ 12 13]} {[ 1 5]} {[ 5 6 7]} {[1 3 5 4]}
% horizontally concatenate all elements of A
A = [A{:}]
A = 1×11
12 13 1 5 5 6 7 1 3 5 4
% or ...
A={[12;13] ;[1,5] ;[5;6;7]; [1,3,5,4]};
% make each element of A a column vector
A = cellfun(@(x)x(:),A,'UniformOutput',false)
A = 4×1 cell array
{2×1 double} {2×1 double} {3×1 double} {4×1 double}
% vertically concatenate all elements of A
A = vertcat(A{:})
A = 11×1
12 13 1 5 5 6 7 1 3 5

类别

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

产品

版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by