convert cell to array

10 views (last 30 days)
NA
NA on 15 Feb 2019
Commented: VBBV on 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,:});

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 15 Feb 2019
out = cat(1,A{:});
out = out(out ~= 0);
  2 Comments
Badreddine Alane
Badreddine Alane on 27 Jan 2020
Thank you so much for the help.
VBBV
VBBV on 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 ( : )

Sign in to comment.

More Answers (0)

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!