How to access double arrays in a cell array?
4 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I have a 1x5 cell array, where each of these 5 columns contains a 20x1 double array.
Now I have the following two questions:
- How can I for instance access from this cell array, the first two rows of all the double array it contains (such that I would ideally end up with a 2x5 array of doubles)?
- Is there any easy way to construct from this cell array a 20x5 array of doubles, where all rows but the i-th are set to zero?
Many many thanks
0 个评论
采纳的回答
Stephen23
2016-6-11
编辑:Stephen23
2016-6-11
Here are two solutions to your two tasks. First create some fake data:
>> fun = @()randi(9,20,1);
>> C = {fun(),fun(),fun(),fun(),fun()};
1. first two rows of each numeric array:
>> N = 2; % pick the number of rows
>> cell2mat(cellfun(@(c)c(1:N,:),C,'Uni',0))
ans =
8 6 4 7 4
9 1 4 3 8
2. All rows except the Nth are zero:
>> tmp = cell2mat(C);
>> R = 4; % pick the row
>> tmp(R~=(1:size(tmp,1)),:) = 0
tmp =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
9 9 8 7 5
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
2 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!