Filter löschen
Filter löschen

vertical or horizontal array random combination in single array

4 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Bruno Luong
Bruno Luong am 15 Jun. 2022
Bearbeitet: Bruno Luong am 15 Jun. 2022
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

Weitere Antworten (1)

Voss
Voss am 15 Jun. 2022
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

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by