Filter löschen
Filter löschen

Extract matrices of a particular size

3 Ansichten (letzte 30 Tage)
ankit
ankit am 31 Mär. 2015
Kommentiert: Hamza Ahmed am 19 Mär. 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 Kommentar
LUI PAUL
LUI PAUL am 31 Mär. 2015
try it
result=cat([1],cellData1{:,:}); %Converting celldata to double.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

James Tursa
James Tursa am 31 Mär. 2015
Bearbeitet: James Tursa am 31 Mär. 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 Kommentare
Michael Haderlein
Michael Haderlein am 31 Mär. 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 am 19 Mär. 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

Melden Sie sich an, um zu kommentieren.


Andrei Bobrov
Andrei Bobrov am 31 Mär. 2015
[a,b] = cellfun(@size,C);
out = C(ismember([a;b]',[1,16],'rows'));

ankit
ankit am 31 Mär. 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 Kommentar
Andrei Bobrov
Andrei Bobrov am 31 Mär. 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
>>

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by