设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1829|回复: 0

MATLAB循环

[复制链接]

20

主题

159

金钱

262

积分

入门用户

发表于 2019-11-11 16:36:46 | 显示全部楼层 |阅读模式

1.    while循环    
在给定条件为真时,重复一个语句或一组语句。它在执行循环体之前测试状态。
语法
MATLAB中while循环的语法是 :
while <expression>
   <statements>
end
只要表达式(expression)为true,while循环将重复执行程序语句(statements)。
当结果为非空并且包含所有非零元素(逻辑或实数)时,表达式(expression)为true。 否则,表达式(expression)为false。
栗子:
a = 10;
% while loop execution 
while( a < 20 )
  fprintf('value of a: %d\n', a);
  a = a + 1;
end
执行上面示例代码,得到以下结果 -
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
2.    for循环    多次执行一系列语句,并缩写管理循环变量的代码。
for循环是一种重复控制结构,可以让您有效地编写一个需要执行特定次数的循环。
语法
MATLAB中for循环的语法是 
for index = values
   <program statements>
            ...
End
        值(values)具有以下格式 -
值格式    描述
initval:endval    index变量从initval到endval每次递增1,并重复程序语句 的执行,直到index大于endval。
initval:step:endval    通过每次迭代值步长(step)增加索引(index)的值,或者 当step为负时递减。
valArray    在每个迭代中从数组valArray的后续列创建列向量索  引。 例如,在第一次迭代中,index = valArray(:,1)。 循环最多执行n次,其中n是由numel(valArray,1,给出的valArray的列数。valArray可以是任何MATLAB数据类型,包括字符串,单元格数组或结构体。
前两种挺简单的,所以在此值对于第三种语法进行举例子说明:
X=rand(5,1);
for i=X
    i
end
X=rand(1,5);
for i=X
    i
end
运行结果是:
i =
    0.4898
    0.4456
    0.6463
    0.7094
    0.7547
i =
    0.2760
i =
    0.6797
i =
    0.6551
i =
    0.1626
i =
    0.1190
注意:对于向量建立的是列向量索引!!
X=magic(3);
X
for i=X
    i
end
运行输出

X =
     8     1     6
     3     5     7
     4     9     2
i =
     8
     3
     4
i =
     1
     5
     9
i =
     6
     7
     2
注意:因为是对列进行索引所以会出现这样的情况
3.    嵌套循环    在任何循环中使用另外一个或多个循环。

4.    break语句    终止循环语句,并将执行转移到循环之后的语句。
X=[2 8 4 3 9 1];
for i=X
    if i==3
        disp('3 found');        %该函数会直接将内容输出在MATLAB命令窗口中
        break;
    end
end
5.    continue语句    导致循环跳过主体的剩余部分,并在重申之前立即重新测试其状态。
X=[5 7 -1 3 -8 6];
sum=0;
for i=X
    if i<0
        continue;
    end

    sum=sum+i;
end
sum
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表