how to turn elements in matrix to 0?

18 vues (au cours des 30 derniers jours)
Kobi
Kobi le 8 Oct 2014
Modifié(e) : José-Luis le 8 Oct 2014
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 commentaire
Kobi
Kobi le 8 Oct 2014
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

Connectez-vous pour commenter.

Réponses (2)

Chad Greene
Chad Greene le 8 Oct 2014
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 commentaires
Kobi
Kobi le 8 Oct 2014
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 le 8 Oct 2014
Modifié(e) : José-Luis le 8 Oct 2014
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?

Connectez-vous pour commenter.


Chad Greene
Chad Greene le 8 Oct 2014
If it's a matter of numerical noise eps may help.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by