高手查问题
下面的程序为什么在K=9时,plot语句没有得到执行:clear all
clc
xxx1=[];
xxx2=[];
kk=[];
for k=1:2:19
XX1=[];
XX2=[];
x1(1)=0.5;
x2(1)=0.7;
for t=1:10
x1(t+1)=sin(k*(x2(t)));
x2(t+1)=cos(k*(x1(t)));
XX1=;
XX2=;
end
kk=;
xxx1=;
xxx2=;
if x1(10)==0.27041&&x2(10)==0.19767
plot(x1(10),x2(10),'o');
end
end
回复
讲一下你要做什么吧. 要不然不好改. 原帖由 pleaseopen 于 2006-11-16 14:30 发表下面的程序为什么在K=9时,plot语句没有得到执行:
clear all
clc
xxx1=[];
xxx2=[];
kk=[];
for k=1:2:19
XX1=[];
XX2=[];
x1(1)=0.5;
x2(1)=0.7;
for t=1:10
...
plot语句的判断条件这么苛刻,恐怕根本不会执行 原帖由 eight 于 2006-11-16 14:52 发表
plot语句的判断条件这么苛刻,恐怕根本不会执行
同意这一观点,根本就不存在满足条件的结果 原帖由 eight 于 2006-11-16 14:52 发表
plot语句的判断条件这么苛刻,恐怕根本不会执行
请大家运行这个程序,该程序中的K=9,看看XXX1和XXX2的值为多少
clear all
clc
xxx1=[];
xxx2=[];
kk=[];
for k=9
XX1=[];
XX2=[];
x1(1)=0.5;
x2(1)=0.7;
for t=1:10
x1(t+1)=sin(k*(x2(t)));
x2(t+1)=cos(k*(x1(t)));
XX1=;
XX2=;
end
kk=;
xxx1=;
xxx2=;
if x1(10)==0.27041&&x2(10)==0.19767
plot(x1(10),x2(10),'o');
end
end 原帖由 xjzuo 于 2006-11-16 14:44 发表
讲一下你要做什么吧. 要不然不好改.
我想在x1(10)和x2(10)满足一定的迭代结果时记住当时的参数值 原帖由 pleaseopen 于 2006-11-17 10:47 发表
请大家运行这个程序,该程序中的K=9,看看XXX1和XXX2的值为多少
clear all
clc
xxx1=[];
xxx2=[];
kk=[];
for k=9
XX1=[];
XX2=[];
x1(1)=0.5;
x2(1)=0.7;
for t=1: ...
老兄,如果你有其他语言的编程经验,应该知道浮点数的比较和精度问题,一般不用==进行比较 原帖由 pleaseopen 于 2006-11-17 10:47 发表
请大家运行这个程序,该程序中的K=9,看看XXX1和XXX2的值为多少
clear all
clc
xxx1=[];
xxx2=[];
kk=[];
for k=9
XX1=[];
XX2=[];
x1(1)=0.5;
x2(1)=0.7;
for t=1: ...
xxx1 = 0.27040982538973
xxx2 = 0.19767405894245
大致明白楼主的意思了,不过楼主对matlab中的变量不太了解
matlab中的变量运算的过程中实际上是双精度的,而楼主说说得只不过是显示精度,实际判断的时候采用的双精度
建议楼主修改一下程序中的判断语句
if abs(x1(10)-0.27041)<1e-5&&abs(x2(10)-0.19767)<1e-5 原帖由 happy 于 2006-11-17 10:55 发表
xxx1 = 0.27040982538973
xxx2 = 0.19767405894245
大致明白楼主的意思了,不过楼主对matlab中的变量不太了解
matlab中的变量运算的过程中实际上是双精度的,而楼主说说得只不过是显示精度,实际判断的 ...
不止matlab如此吧?其他语言浮点数用 == 来比较好像也不行的 感谢happy教授和eight进士,谢谢,试一下,我想是这方面的问题,多年没有编程了,很不熟。 原帖由 eight 于 2006-11-17 11:03 发表
不止matlab如此吧?其他语言浮点数用 == 来比较好像也不行的
同意,一般在if中很少使用==的 xxx1 = 0.27040982538973
xxx2 = 0.19767405894245
二位怎么看到的,我的worksapce中只是显示了double,到小数后5位,向二位学习 原帖由 pleaseopen 于 2006-11-17 11:09 发表
xxx1 = 0.27040982538973
xxx2 = 0.19767405894245
二位怎么看到的,我的worksapce中只是显示了double,到小数后5位,向二位学习
先运行format long,没有记错的话 通过验证,谢谢。精度要求更高只要调节误差范围便可达到,对吧? 通过验证,谢谢。精度要求更高只要调节误差范围便可达到,对吧?多发了一遍,对不起,但感谢还是可以的
页:
[1]