cration of contents inside the cell array of uniform size

1 vue (au cours des 30 derniers jours)
Turbulence Analysis
Turbulence Analysis le 15 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..

Réponse acceptée

Walter Roberson
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
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);
Turbulence Analysis
Turbulence Analysis le 18 Sep 2021
Thanks a lot, Walter.. !!!!

Connectez-vous pour commenter.

Plus de réponses (1)

Simon Chan
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);
  1 commentaire
Turbulence Analysis
Turbulence Analysis le 15 Sep 2021
Hi,
Many thanks.. The only isssue is , in the 8 x 3 array the first columns should be always 0 1 2 3 4 5 6 7... For other 2, 3 columns NaN entries is not a problem..
Is there a way out??

Connectez-vous pour commenter.

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!

Translated by