Matlab中while语句使⽤
⽬录
while语句是条件为true时重复执⾏的while循环。
语法
while expression
statements
end
提⽰
如果意外创建了⼀个⽆限循环(即永远不会⾃⾏结束的循环),请按下 Ctrl+C 停⽌执⾏循环。
如果条件表达式的计算结果是⼀个矩阵,则仅当该矩阵中的所有元素都为 true(⾮零)时,MATLAB 才会计算这些语句。要在任何元素为 true 时执⾏语句,在any函数中对表达式换⾏。
要以编程⽅式退出循环,可以使⽤break语句。要跳过循环中的其余指令,并开始下⼀次迭代,可以使⽤continue语句。
嵌套许多 while 语句时,每个 while 语句都需要⼀个 end 关键字。
MATLAB while 循环类似于其他编程语⾔(如 C 和 C++)中的 do...while 循环。但是,while 在循环的开头⽽不是末尾计算条件表达式。
do % Not valid MATLAB syntax
statements
while expression
要模拟 do...while 循环的⾏为,请将 while 的初始条件设置为 true,并将条件表达式放⼊循环内。例如,通过使⽤ MATLAB while 循环实现上⾯的do...while循环。
while true
statements
if ~expression
break
end
end
说明
f = n;
while n > 1
n = n-1;
f = f*n;
end
disp(['n! = ' num2str(f)])
n! = 3628800
跳⾄下⼀循环迭代
统计⽂件 magic.m 中的代码⾏数。使⽤continue语句跳过空⽩⾏和注释。continue跳过while循环中的其余指令并开始下⼀迭代。
fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line) || strncmp(line,'%',1) || ~ischar(line)
continue
end
count = count + 1;
end
count
count = 34
fclose(fid);
在表达式为 false 之前退出循环
求随机数序列之和,直到下⼀随机数⼤于上限为⽌。然后,使⽤break语句退出循环。
limit = 0.8;
s = 0;
while 1
tmp = rand;
if tmp > limit
break
end
s = s + tmp;
end
表达式
表达式可以包含关系运算符(例如 < 或 ==)和逻辑运算符(例如 &&、|| 或 ~)。使⽤逻辑运算符 and 和 or 创建复合表达式。MATLAB® 按照运算符优先级规则从左⾄右计算复合表达式。
在 d 块的条件表达式中,逻辑运算符 & 和 | 的⾏为⽅式和短路运算符⼀样。此⾏为分别相当于 && 和 ||。由
于 && 和 || 在条件表达式和语句中⼀致短路,因此,建议在该表达式中使⽤ && 和 ||,⽽不是 & 和 |。例如,
while exist('myfunction.m','file') && (myfunction(x) >= pi)
disp('Expressions are true')
break
end
表达式的第⼀部分的计算结果为 false。因此,MATLAB 不需要计算表达式的第⼆部分,否则会导致未定义的函数错误。
matlab定义函数表达式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论