matlab小程序,我觉得到i=2的时候就应该停止了,但是为什么他还是计算了100次呢?

y0=[1;5];
p=[100;100]
for i=1:1:100
i
y=p./(y0+20)
if all(y-y0)>1
if sum(y)>6
p=p.*y
elseif sum(y)<=6
p
y
break
end
end
if all(y-y0)<1
y0=y
end
end
大致的意思是当all(y-y0)>1且sum(y)<=6时输出p,y。
当all(y-y0)>1且sum(y)>6时,迭代p,p=p.*y。
当 all(y-y0)<1时迭代y,y0=y,再开始计算 y=p./(y0+20),且判断是否all(y-y0)>1,sum(y)>6,执行循环。

在for循环中 i=1:1:100创建的向量范围就是1到100,步长为1,你想让它当i=2时停止,应该写为,i=1:2,或者i=1:1:2,都应该可以,因为默认的步长为1追问

我想做的不是这样的。我没有规定他什么时候停下来,应该是满足条件的时候自动跳出程序。怎么解决?

追答

你的程序有很多问题,我不知道你到底要实现什么功能,你把需求给我说一下,我给你写代码,

你写的代码中,程序运行中根本不执行任何一个if语句,因为all()是一个与逻辑运算相关的函数,其输出只有0和1,没有大于1或小于0的情况,在你的程序中all()输出应该总是1,所以说在程序运行中根本不执行任何if语句,只执行这两句: i
y=p./(y0+20)

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-07
for i=1:1:100
i
y=p./(y0+20)
这个当然要做100次了,只是做的100次都是一样的,重复。而且两个if语句都不会成立。

matlab小程序,我觉得到i=2的时候就应该停止了,但是为什...
在for循环中 i=1:1:100创建的向量范围就是1到100,步长为1,你想让它当i=2时停止,应该写为,i=1:2,或者i=1:1:2,都应该可以,因为默认的步长为1

我编了个matlab小程序,程序名咋会有个红色的波浪线?如下
有波浪线常见的情况有下面几种:一是你定义的变量可能没有在程序中用到,这个你把鼠标移到上面自然有英文显示,这种错误没事,不影响程序的运行,只是感觉程序累赘罢了 再一种就是程序编写错误,比如输入if循环的时候少了end的时候会在if下有波浪线,这是只要你运行就会提示你这一行有错,这种错误是致...

Matlab中运行1次后在运行下1次就不出结果是甚么情况?
不作就不会死”,不然也就不会产生后来那恐怖的事。改了1次,运行的结果都很好,唯1使人不爽的是MATLAB的编译器不听的Warning着我,总是

为什么我的MATLAB程序可以输出所有计算值? 求只输出最后结果的...
y=x^2*h+y;i=i+1;end i %没有分号 x %没有分号 y %没有分号 循环程序中的赋值语句和之前的赋值语句最后要有分号,有了分号就不会输出值了,如果想最后输出哪个值,就在最后把变量名写上就可以了,记住这回不要分号了!

帮忙写个Matlab小程序
3 如不需要以前的变量时,为不干扰以后计算,可执行clear清除以前的变量当元素很多的时候,则须采用以下的方式:» x=(1:2:121); % 以起始值为1,增量值为2,终止值为121的矩阵» x=linspace(0,1,100); % 利用linspace,生成以0为起始值,1为终止值,元素数目为100的矩阵»a=[] %空矩阵a = []» ...

高分matlab求教,马上毕业答辩了,有个小程序需要matlab编程,画图,自...
楼主确定公式没问题吗?我画出的图和你给出的差别比较大:有几点不太确定:(1)上面的公式中arg函数理解为复数的辐角(argument of a complex number),MATLAB中使用angle函数计算。(2)上面给出-90°≤α≤90°,但α由tg2α计算得到,由于反正切函数的值域为-90°-90°,再除以2,怎样得到...

编写matlab程序,实现能输入任意数字,字母后转换成二进制
可见,这个函数只能转换整数,对非整数就无能为力了.因此,自己编写了matlab小程序,顺便也贴出来,希望对需要的人能有所帮助!^_^ 1.小数转换为二进制数 输入参数有2个,一个是输入的小数(小于1),一个是指定转换后的二进制位数!程序源码如下:y=dectobin(innum,N)十进制小数转换为二进制数 输入参数为...

matlab的solve函数限定解的范围
在Matlab ”Command Window“中输入如下命令:x=solve(‘x^2+100*x+99=0’,‘x’)2、回车后,Matlab就求出了这个一元二次方程的解3、再举一例,解一元三次方程“x^3+1=0”。在Matlab ”Command Window”中输入如下命令:x=solve(‘x^3+1=0’,‘x’)4、回车后,Matlab就求出了这个一元三次方程“x...

Matlab,odeplot,小程序挑错及原理。
12,5,5,0];options = odeset('RelTol',1e-8,'AbsTol',1e-8,'OutputFcn',@odeplot);[t,y] = ode45(@odefunc,t0,x0,options);figure(2)plot3(y(:,1),y(:,2),y(:,3))把下面的程序放在第二个m文件中 function dy=odefunc(t,y)g=-9.8;dy=[y(4)y(5)y(6)0 0 g];

毕业设计,用matlab GUI界面做一个小程序,要求输入一个集合公式(离散数 ...
其实,用delete函数也是可以的,就是:delete(handles.figure_pjimage);看你的心情了。但是运行程序的时候,你会发现,当你打开图片的时候,如果点“取消”按钮,那么在MATLAB的命令窗口会弹出错误,那是因为我们没有处理取消的情况。下面我们来处理下这个问题,只要把m_file_open_Callback下面的程序更改为如下程序即可:[...

相似回答