Azzera filtri
Azzera filtri

Extract matrices of a particular size

3 visualizzazioni (ultimi 30 giorni)
ankit
ankit il 31 Mar 2015
Commentato: Hamza Ahmed il 19 Mar 2021
Suppose there a cell containing matrices of different sizes. How can I extract all the (1x16) matrices in the same order which was present in the cell and store them in a different cell?
  1 Commento
LUI PAUL
LUI PAUL il 31 Mar 2015
try it
result=cat([1],cellData1{:,:}); %Converting celldata to double.

Accedi per commentare.

Risposte (3)

James Tursa
James Tursa il 31 Mar 2015
Modificato: James Tursa il 31 Mar 2015
C = your cell array
DesiredSize = whatever; % e.g. [1 16]
Z = cellfun(@size,C,'UniformOutput',false); % get matrix sizes
X = cellfun(@isequal,Z,repmat({DesiredSize},size(Z))); % which ones match desired size
D = C(X); % Extract them into another cell array
  2 Commenti
Michael Haderlein
Michael Haderlein il 31 Mar 2015
In principle, yes, but it looks to me as if there's are more straight-forward way of getting X:
C={rand(3) rand(1,16) rand(1,9) rand(1,16)};
DesiredSize=[1 16];
X=cellfun(@(c) isequal(size(c),DesiredSize),C);
D=C(X);
Hamza Ahmed
Hamza Ahmed il 19 Mar 2021
Hello i wanna loop through this
lets just say i have a 1*78 cell array and each cell has matrix of 2 columns but different number of rows my question is that how will I extract all the matrices which have number of rows greter then 2 from that cell array? any help in this regard will be much appreciated Thankyou

Accedi per commentare.


Andrei Bobrov
Andrei Bobrov il 31 Mar 2015
[a,b] = cellfun(@size,C);
out = C(ismember([a;b]',[1,16],'rows'));

ankit
ankit il 31 Mar 2015
I tried
z=cellfun(@(x) length(x),new_cell); %displays the lengths of the matrices of the cell
pos=find(z==16);
now I can get positions of all the 1x16 matrices
  1 Commento
Andrei Bobrov
Andrei Bobrov il 31 Mar 2015
No, e.g.:
>> C = {randi(20,4,4);randi(10,1,16);randi(20,1,16);randi(15,16,3)};
>> ii = cellfun(@length,C)
ii =
4
16
16
16
>>

Accedi per commentare.

Categorie

Scopri di più su Matrices and Arrays 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