convert cell to array

1 Ansicht (letzte 30 Tage)
NA
NA am 15 Feb. 2019
Kommentiert: VBBV am 2 Feb. 2023
I have
A={[1;95;110],[58;78;80;110;111;112],[58;59;79;110;112;113],[64;83;84;85;90;112;113],[112],[0],[0],[116]};
C = cellfun(@(x)x(x~=0),A,'uni',false);
I want to conver this cell to array, result should be:
result=[1;95;110;58;78;80;110;111;112;58;59;79;110;112;113;64;83;84;85;90;112;113;112;116]
I tried to use cell2mat(A) but have this error
Error using cat
Dimensions of arrays being concatenated are not consistent.
Error in cell2mat (line 75)
m{n} = cat(2,c{n,:});

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 15 Feb. 2019
out = cat(1,A{:});
out = out(out ~= 0);
  2 Kommentare
Badreddine Alane
Badreddine Alane am 27 Jan. 2020
Thank you so much for the help.
VBBV
VBBV am 2 Feb. 2023
A={[1;95;110],[58;78;80;110;111;112],[58;59;79;110;112;113],[64;83;84;85;90;112;113],[112],[0],[0],[116]}
A = 1×8 cell array
{3×1 double} {6×1 double} {6×1 double} {7×1 double} {[112]} {[0]} {[0]} {[116]}
B = A{:} % why do i get only the first element of cell array ?
B = 3×1
1 95 110
B = A(:) % this does not have problem
B = 8×1 cell array
{3×1 double} {6×1 double} {6×1 double} {7×1 double} {[ 112]} {[ 0]} {[ 0]} {[ 116]}
why does the parenthetical referencing with { : } return only the first element of cell array ? but it does not occur with ( : )

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by