removing specific values in a cell array

조회 수: 13(최근 30일)
HYZ
HYZ 2020년 5월 19일
댓글: HYZ 2020년 5월 19일
Hi,
I have a cell array A = {[1:10] [1:10]};
I would like to remove any elements which are less than 3 and greater than 8 in all vectors in the cell array.
The result is A = {[3:8] [3:8]}; Could you please help? Thanks.

채택된 답변

Stephen23
Stephen23 2020년 5월 19일
>> A = {1:10,1:10}; % square brackets are not required.
>> F = @(a)a(a>=3&a<=8);
>> B = cellfun(F,A,'uni',0);
>> B{:}
ans =
3 4 5 6 7 8
ans =
3 4 5 6 7 8
  댓글 수: 1
HYZ
HYZ 2020년 5월 19일
Thanks a lot!

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

추가 답변(1개)

Stanislao Pinzón
Stanislao Pinzón 2020년 5월 19일
Maybe something like this
A = {1:10,1:10};
A{1}(A{1}<3|A{1}>8) = [];
A{2}(A{2}<3|A{2}>8) = [];
Naturally, it would be tedious in wide cell arrays. So you can use instead:
A = {1:10,1:10};
for i=1:length(A)
A{i}(A{i}<3|A{i}>8) = [];
end
  댓글 수: 1
HYZ
HYZ 2020년 5월 19일
Thanks a lot!

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

범주

Find more on Data Types 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!

Translated by