vertical or horizontal array random combination in single array

2 vues (au cours des 30 derniers jours)
eko supriyadi
eko supriyadi le 15 Juin 2022
Réponse apportée : Voss le 15 Juin 2022
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

Réponse acceptée

Bruno Luong
Bruno Luong le 15 Juin 2022
Modifié(e) : Bruno Luong le 15 Juin 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

Plus de réponses (1)

Voss
Voss le 15 Juin 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

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by