matlab while循环的使用技巧。就是输出循环的运算次数,自己试了多次,结果都是最初的i值

如题所述

第1个回答  2013-04-09
while expression
{commands}
end
是先判断后执行

只要在表达式里expression的所有元素为真就执行while和end 语句之间的{commands}

num=0;
EPS=1;
while (1+EPS)>1
EPS=EPS/2;
num=num+1;
end
第2个回答  2013-04-09
怎么可能发生你说的情况呢?
贴出代码来帮你查错。

简单示例:
>> i=1;while i<=5,disp(i);i=i+1;end
1
2
3
4
5追问

代码太长,先用图片看看吧。可以么?

追答

你的程序执行和具体数据有关,我不可能把图片的代码重复录入一次来试,仅作如下猜测:是否你的数组R有一部分是随下标递增的?那种情况下,while的条件不满足,循环体的i=i+1也就不会执行。

你可以试试比较下面这两小段代码:
R=10:-1:1;i=1;while R(i)>R(i+1);i=i+1,end

R=1:10;i=1;while R(i)>R(i+1);i=i+1,end

追问

不会的,因为是随着光波长单调递增的。这个是模拟光纤光栅的反射谱图,不会不单调的。

追答

可能你没看明白我说的意思——如果R是递增的,那么while的条件R(i)>R(i+1)就不可能满足。

追问

不会的,图像已经出来了,是类似贝塞尔函数一样上下变换的...

追答

图像出不出来和while的条件是否满足有什么关系?
while条件不满足只是你的i=i+1不执行而已,不一定会引起其他问题。

你自己设置个断点跟踪一下不就知道了?我又没你的代码。

本回答被提问者和网友采纳

matlab while循环的使用技巧。就是输出循环的运算次数,自己试了多次...
end 是先判断后执行 只要在表达式里expression的所有元素为真就执行while和end 语句之间的{commands} num=0;EPS=1;while (1+EPS)>1 EPS=EPS\/2;num=num+1;end

matlab while循环的使用技巧。就是输出循环的运算次数,自己试了多次...
你的程序执行和具体数据有关,我不可能把图片的代码重复录入一次来试,仅作如下猜测:是否你的数组R有一部分是随下标递增的?那种情况下,while的条件不满足,循环体的i=i+1也就不会执行。 你可以试试比较下面这两小段代码: R=10:-1:1;i=1;while R(i)>R(i+1);i=i+1,end和 R=1:10;i=1;while R(...

matlab while 循环
计算一个求和1+2+3的结果: clear a=0; i=1; while i=3  %若i=3,会执行下面的循环语句 a=a+i; i=i+1; end a 尽量少用循环语句,据说循环比较慢!能用其他替换的就用其他内置命令替换。例如计算 这1+2+。。。+100些类似的算法。

Matlab 中while循环语句的用法?
while(条件)循环体 end 【注】:条件成立时,执行循环体

matlab 有listdlg函数的while loop 如何记录循环的次数和每次结果?
exp是求指数函数的,比如说e的1次幂,可以是exp(1)可以求得,你说的2的x次方是用power来求的,比如2的3次幂,power(2,3),得到的结果是8

Matlab 中while循环语句
matlab num = 0; % 初始化累加器 i = 0; % 初始化循环计数器 开始while循环 while (i < 64) % 当i小于64时,循环继续 a = 2^i; % 计算2的i次方 num = num + a; % 累加结果到num i = i + 1; % i自增1,进入下一轮循环 end 循环结束,最终num包含了2的0到63次幂的和 ...

matlab中的如何跳出while死循环
1、首先打开电脑和matlab软件,新建一个m文件,并在m文件里面输入一个死循环的代码,如下所示,for循环里面的inf是表示一个无穷大数的意思。2、然后点击matlab上面的绿色run按钮,可以看到Command Window里面一直处于运行busy状态,也就是死循环的状态。3、此时退出该死循环的第一个方法:就是把光标定位到...

matlab中用了while循环,我想看其中每一次迭代的结果,这个可以有吗?行的...
如果你要输出一个变量的值,只需要disp(变量名)即可,或者更简单的,disp都去掉, 变量名 单独一行即可。

第4章:for和while循环语句(MATLAB入门课程)
4.2.1 for-end语句在已知循环次数时非常实用,如计算向量元素总和或生成斐波那契数列。例如,不使用sum函数求行向量x的和,或者计算一系列数学表达式的累积结果。4.2.2 while-end语句适用于不确定循环次数的场景,比如查找满足特定条件的数值或计算序列的特定元素。例如,判断何时 y 的值首次大于10或寻找...

Matlab while 循环 如何退出
首先,确保在循环开始时设置一个计数器(count),每次循环增加1。当循环次数超过预设的阈值(例如10000次)时,使用break语句强制跳出循环,以避免长时间的无意义运算。在编写代码时,应检查循环的退出条件是否合理,避免出现死循环。以下是一个修改后的代码片段,强调了如何优化循环结构:在处理高度计算问题...

相似回答