Sum of two numbers is not accepted
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
更多回答(1 个)
Sriram Tadavarty
2020-7-30
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numeric Types 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!