Sum of two numbers is not accepted
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Stanislav Kotsmid
il 30 Lug 2020
Risposto: Sriram Tadavarty
il 30 Lug 2020
Hi everyone,
I have a problem with deleting numbers in a matrix. Let's have a matrix M, where I want to delete all rows with a specified value in the second column, e.g:
M(M(:,2)==0.141,:)=[];
All rows with 0.141 in the second column are now deleted.
Also, I tried to specify this value by a sum of two numbers:
a=0.14+0.001;
M(M(:,2)==a,:)=[];
This sum hasn't been accepted and all values are still in the matrix.
Can anyone explain me this mysterious thing please?
0 Commenti
Risposta accettata
Più risposte (1)
Sriram Tadavarty
il 30 Lug 2020
Hi Stanislav,
It is the way the floating point airthmetic are performed in MATLAB.
If you would have tried 0.14 + 0.001 equals 0.141, then you would have seen both doesn't match.
There were similar posts in this forum regarding this. One such which i recently encountered has lot more detailed links. https://www.mathworks.com/matlabcentral/answers/572680-is-there-a-bug-in-the-if-function
For the problem here, place a tolerance and then it would provide same results, as expected.
Thanking you.
Regards,
Sriram
0 Commenti
Vedere anche
Categorie
Scopri di più su Numeric Types in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!