cration of contents inside the cell array of uniform size
1 view (last 30 days)
Show older comments
Turbulence Analysis
on 15 Sep 2021
Commented: Turbulence Analysis
on 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 Comments
Accepted Answer
Walter Roberson
on 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 Comments
Walter Roberson
on 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);
More Answers (1)
Simon Chan
on 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);
See Also
Categories
Find more on Point Cloud Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!