removing specific values in a cell array

조회 수: 1 (최근 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개)

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

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by