MATLAB cell to matrix
显示 更早的评论
I have 1 row and 106 columns. Each cell contains various numbers. Some cells contain 1 number, some contain 5, etc. The problem is this: If one number is present, it looks great. Some cells have more than one number. I would like for the second number to go in the second row, third number in third row, etc. I am not sure how to do this. I am guessing I need to make a zeros matrix or something but I am not sure
6 个评论
Azzi Abdelmalek
2014-1-13
If M={1 [7 8] 3 [ 1 5 6] 0 [1 5 8] 2 10 }
What is the expected result?
Benjamin Cowen
2014-1-13
Azzi Abdelmalek
2014-1-13
You can simply post the expected result, if really you know what you want
Benjamin Cowen
2014-1-13
Benjamin Cowen
2014-1-13
Benjamin Cowen
2014-1-13
采纳的回答
更多回答(1 个)
Matt J
2014-1-13
Is this what you want?
>> C={5,[6 7 8], [9,10]};
>>cell2mat(C)
ans =
5 6 7 8 9 10
Or,
>> [C{:}]
ans =
5 6 7 8 9 10
6 个评论
Benjamin Cowen
2014-1-13
Matt J
2014-1-13
C={5,[6 7 8], [9,10]};
M=max(cellfun('length',C));
result = cell2mat(cellfun(@(c) pad(c,M), C, 'uni',0)),
function c=pad(c,M)
c=c(:);
c(M+1,1)=0;
c(end)=[];
end
Benjamin Cowen
2014-1-13
Benjamin Cowen
2014-1-13
Matt J
2014-1-13
Yes. That is one of your options.
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!