convert cell to array

5 ビュー (過去 30 日間)
NA
NA 2019 年 2 月 15 日
コメント済み: VBBV 2023 年 2 月 2 日
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,:});

採用された回答

Andrei Bobrov
Andrei Bobrov 2019 年 2 月 15 日
out = cat(1,A{:});
out = out(out ~= 0);
  2 件のコメント
Badreddine Alane
Badreddine Alane 2020 年 1 月 27 日
Thank you so much for the help.
VBBV
VBBV 2023 年 2 月 2 日
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 ( : )

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCell Arrays についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by