Matlab equality problem. Please help.
古いコメントを表示
Hi, this is my code.
theta(k) = 45
l = x.*cosd(theta(k))+y.*sind(theta(k));
l(1,1) == l(3,3);
x(1,1)*cosd(45)+ y(1,1)*sind(45) == x(3,3)*cosd(45)+ y(3,3)*sind(45);
x(1,1)+ y(1,1)==x(3,3)+ y(3,3);
However, matlab it saying
l(1,1) == l(3,3)
is false,
x(1,1)*cosd(45)+ y(1,1)*sind(45) == x(3,3)*cosd(45)+ y(3,3)*sind(45)
is false, and
x(1,1)+ y(1,1)==x(3,3)+ y(3,3)
is true. I am wondering why because I believe l(1,1) == l(3,3) is true.
2 件のコメント
Rik
2018 年 10 月 3 日
Your code is not self-contained (i.e. we cannot run it independently of the code you have before this), and I don't understand what you mean with your code/notation.
A wild guess would be that you are checking equality on a non-integer data type, which means you might be encountering float rounding errors. If you run the code below, you can clearly see that 1.0000 does not equal 1.0000
a=1+eps*2;%very close to 1
b=sqrt(a);b=b^2;%do an operation and reverse it
clc,isequal(a,b)
disp(a)
disp(b)
Jenny Chen
2018 年 10 月 3 日
編集済み: Stephen23
2018 年 10 月 4 日
採用された回答
その他の回答 (1 件)
Image Analyst
2018 年 10 月 3 日
0 投票
カテゴリ
ヘルプ センター および File Exchange で Linear Algebra についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!