Delete multiple elements from matrix, that match value at once
조회 수: 71 (최근 30일)
이전 댓글 표시
Hello everybody,
I wanted to know if there is a possibility do remove certain elements from a matrix at once, that match a specific value, without using the indexes?
You can do it with single values like this:
A(A==cerain_value)=[];
or
A(A<cerain_value)=[];
But what if there are multiple values I want to have removed?
Like :
A=[1,2,3,4,5;3,4,6,7,8;1,2,4,5,6;8,7,6,3,4;1,2,3,4,5];
and I want to remove every 1,3 and 5, without any loop or going with the indexes instead of the values.
How is this possible?
A(A==[1,2,5])=[];
does not work.
Many thanks in advance.
Best regards
Marc
댓글 수: 0
채택된 답변
추가 답변 (1개)
Mehmed Saad
2020년 5월 14일
편집: Mehmed Saad
2020년 5월 14일
A=[1,2,3,4,5;3,4,6,7,8;1,2,4,5,6;8,7,6,3,4;1,2,3,4,5];
R = [1 2 5];
L=arrayfun(@(x) A==x,R,'uni',0);
A(any(cat(3,L{:}),3)) = [];
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!