cell2mat error in arraycell

Sis=app.StrategyAggreg_UITable2.Data(:,3);
xx=logical(cell2mat(Sis));
Error using cell2mat
All contents of the input cell array must be of the same data type.
Unable to resolve the name 'app.StrategyAggreg_UITable2.Data'.

 采纳的回答

load Check
xx=logical([Sis{:}]')
xx = 44×1 logical array
1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0

更多回答(1 个)

load Check
xx=cellfun(@logical,Sis)
xx = 44×1 logical array
1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0

1 个评论

load Check
classes = cellfun(@class, Sis, 'uniform', 0);
unique_classes = unique(classes)
unique_classes = 2×1 cell array
{'double' } {'logical'}
mask = classes == "logical";
unique([Sis{mask}])
ans = 1×2 logical array
0 1
unique([Sis{~mask}])
ans = 1×2
0 1
So Sis contains cells with logical 0 (false) and logical 1 (true), but it also contains cells with numeric 0 and numeric 1.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by