cell array converts to matrix, how?
161 次查看(过去 30 天)
显示 更早的评论
I want to convert cell 'A' to a matrix 'B'.
A=
columns 1 through 10
{1x1 cell} {1x1 cell} {1x1 cell} {1x1 cell}...
columns 1 through 20
{1x1 cell} {1x1 cell} {1x1 cell} {1x1 cell}...
I want to have a 'B' as:
B =
1 2 3 4 5 6 7 8 9 ... 20
I tried B(1)=cell2mat(A{1}), but can I avoid doing it one by one?
Thanks!
1 个评论
Jan
2012-7-20
As usual it would be helpful if you post the input data in valid Matlab syntax, such that we can try our suggestion by copy&paste them. Currently it is not clear what the "{1x1 cell}" contains. Looking at your comments it seems, like these are cell strings.
采纳的回答
Sean de Wolski
2012-7-19
B = [A{:}];
B = [B{:}];
4 个评论
Sean de Wolski
2012-7-19
Are the contents strings?
If so, throw in a:
B = cellfun(@str2double,B);
B = [B{:}]
更多回答(1 个)
Greg Heath
2012-7-20
The expressions converting a "row cell of cells" to the corresponding "row vector" are
B = [ A{ : } ]
C = [ B{ : } ]
The expression for converting a 2-D cell of cells to the corresponding 2-D matrix is
C = repmat(cell2mat( [ A{:} ] ),size(A))
5 个评论
Rachel Clark
2021-1-12
is there a way to make this work for a cell array containing cell arrays of different sizes?
Dijle Kaya
2021-3-30
编辑:Dijle Kaya
2021-3-30
Maybe so:
a = strings(1,length(A)) % or a = zeros(1,length(A)), if A is an integerarray
for i = 1:length(A)
a(1,i) = (convertCharsToStrings(A{i})) %if A is a Stringarray
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!