removing specific values in a cell array

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일

1 개 추천

>> 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개)

Stanislao Pinzón
Stanislao Pinzón 2020년 5월 19일

1 개 추천

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

카테고리

도움말 센터File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기

태그

질문:

HYZ
2020년 5월 19일

댓글:

HYZ
2020년 5월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by