필터 지우기
필터 지우기

Extract matrices of a particular size

조회 수: 3 (최근 30일)
ankit
ankit 2015년 3월 31일
댓글: Hamza Ahmed 2021년 3월 19일
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
LUI PAUL
LUI PAUL 2015년 3월 31일
try it
result=cat([1],cellData1{:,:}); %Converting celldata to double.

댓글을 달려면 로그인하십시오.

답변 (3개)

James Tursa
James Tursa 2015년 3월 31일
편집: James Tursa 2015년 3월 31일
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
Michael Haderlein
Michael Haderlein 2015년 3월 31일
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 2021년 3월 19일
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

댓글을 달려면 로그인하십시오.


Andrei Bobrov
Andrei Bobrov 2015년 3월 31일
[a,b] = cellfun(@size,C);
out = C(ismember([a;b]',[1,16],'rows'));

ankit
ankit 2015년 3월 31일
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
Andrei Bobrov
Andrei Bobrov 2015년 3월 31일
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
>>

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by