hi i have 1x36 cell,each cell contains 2x2 cell, how to convert it into 4x36 double in matlab
1 view (last 30 days)
Show older comments
Accepted Answer
Guillaume
on 22 Nov 2016
cell2mat(cellfun(@(c) reshape(cell2mat(c),[], 1), yourcellarray, 'UniformOutput', false))
cell2mat(cellfun(@(m) reshape(cellfun(@(quadrant) max(quadrant(:)), ... max of a quadrant
mat2cell(m, ... convert matrix in cell into cell of 4 quadrant
[ceil(size(m, 1)/2), floor(size(m, 1)/2)], ...
[ceil(size(m, 2)/2), floor(size(m, 2)/2)])), ...
[], 1), ... reshape maxs of quadrant into column vector
yourcellarray, 'UniformOutput', false)) %process each cell
More Answers (1)
KSSV
on 22 Nov 2016
clc; clear all ;
A = cell(1,36) ;
for i = 1:36
A{i} = cell(2) ;
A{i}{1,1} = rand(2) ;
A{i}{1,2} = rand(2) ;
A{i}{2,1} = rand(2) ;
A{i}{2,2} = rand(2) ;
end
%
B = cell(1,36) ;
for i = 1:36
B{i} = cell2mat(A{1}) ;
end
or
iwant = cellfun(@cell2mat,A,'un',0);
See Also
Categories
Find more on Data Type Conversion 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!