matlab的while循环使用
的有关信息介绍如下:while,和for相似,但是区别很大。while,一般是用来无穷次的运算。
while一般分为
while expression
(commands)
end
其中,expression为条件表达式,(commands)就是其中的命令
expression一般就是想a==5、b>4的都是命令表达式(就是回复1和0的),如果结果回复true那么就会运行一次(commands)命令,如果为false就不运行,进入下一条命令。(一般都不使用==)
如果expression输入了true命令,那么就会把(commands)无限次运行,就疯了,直到摁Ctrl+C或者Ctrl+break(有些键盘没有)应急停止(如图只是大概30秒就飙到20000多,不及时摁可以导致matlab死机,但是是小概率的,除非(commands)命令行特别多),而且会出现错误,因为应急停止后end没有了。
如果expression输入false,就不会运行了,如图,因为开始设置a=1;,所以a只等于1,while没有运行。
(commands)就是命令行,不过命令行一般也需要和expression配合,想:
a=1; %指定a
while a<1000 %设置条件表达式
a=a+1 %设置命令
end
所以a只可以是1000.
any(expression)可以针对数组进行比较工作,如果expression里面的数字都是大于一,那么any才返回true(运行),反之就返回false(不运行),如果是1 0,any返回true,只有0 0才会返回false
如果是返回1 0 0 0 0的数组(any返回数组)那么就按false算,只有是1 1 1 1 1的数组才按照true算。
最简单的:
a=1;
while a<5
a=a+1
end
如果a<5后,就会终止while运行,a=5
带运算次数的:
a=1;
num=0;
while a<10
a=a+1
num=num+1 %计算运行次数
end
只显示a数值:
a=1;
while a<10
a=a+1;
disp(num2str(a)) %使用disp和num2str
end
如果想最后显示a可以把disp语句放到end后面。
询问while终止条件,然后最后显示最终结果:
a=input('输入while条件(以字符串格式写出,比如''<5'') >> ');
aa=sprintf(strcat('%s',a),'b');
b=1;
while eval(aa)
b=b+1;
end
disp(num2str(b))
使用any而且只显示最后结果:
a=[20 20 20 20];
while any(a)
a=a-1;
end
disp(num2str(a))