How to access double arrays in a cell array?
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Stephen23
le 11 Juin 2016
Modifié(e) : Stephen23
le 11 Juin 2016
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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!