cration of contents inside the cell array of uniform size
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Turbulence Analysis
le 15 Sep 2021
Commenté : Turbulence Analysis
le 18 Sep 2021
Hi,
In my loop operation I am generating 1 X 72 cell. At every iteration the values will be stored in the consequetive columns in the form of 8 x 3 double. However, in some cases it is 5 x3 or 2 x3. I would like to make all entries in the form of 8 x 3.. Could someone please help me with this ..
I have attached my matrix for an reference..
0 commentaires
Réponse acceptée
Walter Roberson
le 15 Sep 2021
result = cellfun(@(C) full([(0:7).', sparse(C(:,[1 1])+1, [1*ones(1,size(C,1)), 2*ones(1,size(C,1))], C(:,[2 3]), 8, 2)]), Data, 'uniform', 0);
6 commentaires
Walter Roberson
le 18 Sep 2021
mask = cellfun(@isempty, Data));
result(mask) = {[(0:7).', zeros(8,2)]};
result(~mask) = cellfun(@(C) full([(0:7).', sparse(C(:,[1 1])+1, [1*ones(1,size(C,1)), 2*ones(1,size(C,1))], C(:,[2 3]), 8, 2)]), Data(~mask), 'uniform', 0);
Plus de réponses (1)
Simon Chan
le 15 Sep 2021
May try the following to add NaN to the new rows
load('data.mat');
addrow = cellfun(@(x) 8-size(x,1),Data,'uni',0);
result = cellfun(@(x,y) vertcat(x,NaN(y,3)),Data,addrow,'uni',0);
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices 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!