Matlab平等问题。请帮助。

6视图(30天)
珍妮陈
珍妮陈 2018年10月3日
编辑: Stephen23 2018年10月4日
你好,这是我的代码。
θ(k) = 45
l = x。* cosd(θ(k)) + y。*信德(θ(k));
l (1,1) = = l (3,3);
x (1,1) * cosd (45) + y(1,1) *信德(45)= = x (3,3) * cosd (45) + y(3,3) *信德(45);
x (1,1) + y (1,1) = = x (3,3) + y (3,3);
然而,matlab说
l (1,1) = = l (3,3)
是假的,
x (1,1) * cosd (45) + y(1,1) *信德(45)= = x (3,3) * cosd (45) + y(3,3) *信德(45)
是假的,
x (1,1) + y (1,1) = = x (3,3) + y (3、3)
是真的。我想知道为什么,因为我相信l (1,1) = = l(3、3)是正确的。
2的评论
珍妮陈
珍妮陈 2018年10月3日
编辑:Stephen23 2018年10月4日
你好,对不起,这应该是足够的。
θ= [45];
(公关、Pc) = (P)大小;
元=长度(θ);
x = 0(公关、Pc);
y = 0(公关、Pc);
我= 1:公关
j = 1:电脑
x (i, j) = j - 1;
y (i, j) =公关——我;
结束
结束
k = 1: nt
l = x。* cosd(θ(k)) + y。*信德(θ(k));
l (1,1) = = l (3,3)
x (1,1) * cosd (45) + y(1,1) *信德(45)= = x (3,3) * cosd (45) + y(3,3) *信德(45)
x (1,1) + y (1,1) = = x (3,3) + y (3、3)
结束

登录置评。

接受的答案

Stephen23
Stephen23 2018年10月4日
编辑:Stephen23 2018年10月4日
你必须了解浮点数,以及为什么你不应该测试他们平等。总是比较绝对的区别和宽容,像这样:
abs (a - b) <托尔
先阅读这些:
这是值得一读:
看到“真正的”价值下载詹姆斯Tursa FEX提交:
“我想知道为什么,因为我相信l (1,1) = = l(3,3)是真正的“
如果你使用 num2strExact 在这两个值,你会发现它们 相同,MATLAB的输出是正确的。这就是为什么你应该比较绝对的区别和宽容。

类别

找到更多的在性能和内存帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!