# cell array into 3d matrix

19 visualizzazioni (ultimi 30 giorni)
sumeeth il 17 Apr 2012
Modificato: Andrei Bobrov il 17 Nov 2013
i have a cell array of size 104x104 with each cell having a matrix of size 1x1000. How can i convert this cell into a 3d matrix of size 104x104x1000 ??
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Sean de Wolski il 17 Apr 2012
+1, good clear question with room for many good approaches

Accedi per commentare.

### Risposte (4)

Hanan Shteingart il 17 Nov 2013
You can concatenate cell array content using the "cat" function with this syntax: cat(dim, A{:}) where A is your cell array
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

the cyclist il 17 Apr 2012
Both of these should do the same thing (and I think it is the thing you want). The second is a little bit more transparent, but slower.
B1 = cell2mat(arrayfun(@(x)permute(x{:},[3 1 2]),A,'UniformOutput',false));
B2 = zeros(104,104,1000);
for i = 1:104,
for j = 1:104,
B2(i,j,1:1000) = permute(A{i,j},[1 3 2]);
end
end
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Sean de Wolski il 17 Apr 2012
Reshape() instead of permute() for speed.

Accedi per commentare.

Sean de Wolski il 17 Apr 2012
Or the pure matrix manipulation approach:
%Sample Data:
X = reshape(magic(50),1,[]);
C = cell(100,100);
C(:) = {X}; %100 x 100 cell array of xs
%Engine:
D = reshape(reshape(cell2mat(C)',numel(X),numel(C))',size(C,1),size(C,2),numel(X)); %some reshapin'
%Check
all(all(all(bsxfun(@eq,D(1,1,:),D)))) %Is it right?
yay!
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Andrei Bobrov il 17 Apr 2012
Modificato: Andrei Bobrov il 17 Nov 2013
permute(reshape(cell2mat(C).',numel(C{1}),size(C,2),[]),[3 2 1])
or
reshape(cat(1,A{:}),[size(C), numel(C{1})])
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Data Types in Help Center e File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by