您的位置首页百科知识

matlab的while循环使用

matlab的while循环使用

的有关信息介绍如下:

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))