how to turn elements in matrix to 0?

조회 수: 18 (최근 30일)
Kobi
Kobi 2014년 10월 8일
편집: José-Luis 2014년 10월 8일
i have this matrix:
arround this shape the elements are close to zero (in a small values for example: xe-20-xe-10) is there a simple way to take the elements only around this shape and change them into zero?
  댓글 수: 1
Kobi
Kobi 2014년 10월 8일
i tried to do this in this way but i don't understand what is wrong
[col,row]=find(abs(diag(T))<0.2); T(row,col)=0;
i'm expecting to zero only a square around the shape in this way

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

답변 (2개)

Chad Greene
Chad Greene 2014년 10월 8일
If you'd like to change all values in T that are less than some threshold (we'll call the threshold thresh), all you need is
T(T<thresh)=0;
  댓글 수: 2
Kobi
Kobi 2014년 10월 8일
not for all the values only for a square of zeros i managed to do this in a way that i don't really like i create a threshold for the diognal values of the matrix and take 10% from the scale
treshold=(max(max(abs(diag(T))))-min(min(abs(diag(T)))))*0.1; ind=find(abs(diag(T))<treshold);
but i don't like this because i need to set the threshold manually
any suggestions?
José-Luis
José-Luis 2014년 10월 8일
편집: José-Luis 2014년 10월 8일
Well, a threshold is subjective, even when applying complex statistical methods. You are going to have to select something. Even if you use a function, the choice is subjective.
I guess what I am trying to ask is how do you want to set that limit?

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


Chad Greene
Chad Greene 2014년 10월 8일
If it's a matter of numerical noise eps may help.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by