How to access double arrays in a cell array?
조회 수: 20 (최근 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에서 Software Development Tools에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!