Matlab中的循环

时间:2021-08-13作者:klpeng分类:IT综合浏览:1879评论:0

         如果学过C,Java等编程语言就非常容易理解。

1.for循环

        和Python很类似,只是对于遍历元素的方式改了。

        for i = 初始值: 增值:终止数

               执行语句

        end

        上述中,首先根据i被赋予在等号右边的初始值,当i<=终止数时,就继续执行执行语句里面的代码,每执行一次 i 就会变成 i= i + 增值 ,i = 终止数也会被执行(i包含了终止值)。 增值就是i每次循环之后在原有的i的基础上在加上该数值。

        每执行完所有执行语句之后,n会根据增值自动递增

        当增值 = 1时,可以省略,也就是当增值=1时是默认值 ,就可以变成:  i = 初始值:终止值  ,也就是每次循环就像Java中的 i ++ 。对于Java中for循环的终止条件是可以使用像if语句一样的条件表达式(>,<,==等)的,而Matlab不行,取而代之的就是i = 初始值: 增值:终止数

        for 循环是可以嵌套的。最后,但for语句写完后一定要加上end ! 

        下面举一个求1-10阶乘之和的例子 ,并且输出每次循环最外围的i的值:

        

sum = 0;
for i = 1:10
    temp = 1;
    for j = 1:i
        temp = temp*j;
    end
    sum = sum+temp;
    fprintf('i = %d \n',i);
end
disp(sum);

        i 输出的是1-10 . 

        Matlab中的循环

2.while循环

        当学完了上述的for循环,有没有发现for循环一个弊端,for循环必须要有终止值,而且i每次循环值的改变都是固定的。那么while则就可以通过条件表达式(>,<,==等) 。

        

        while 条件表达式

                当条件表达式符合则执行 

        end 

        

        我们通过while循环的话,就不要太多余纠结具体的结束值,并且也可以更灵活的改变循环终止的条件。

        我们使用while循环来替代上述用for循环求1-10的阶乘之和的例子。


n = 1;
sum =0;
while n<=10
    temp = 1;
    j = 1;
    while j<=n
        temp =temp*j;
        j = j+1;
    end
    fprintf('n = %d \n',n);
    sum = sum+ temp;
    n = n+1;
end
disp(sum);

        我们可以发现 i,j的初始化变成到了while循环前,i和j每次循环的增量放在了循环执行语句中,并且判断条件结束变成了条件表达式。

        打印出来的结果是一样的。

        Matlab中的循环

        

        此外,在for循环执行语句中,Matlab也可以使用bresk语句来跳出循环,continue来继续循环(执行该语句之后,不再执行后续的执行语句,继续n自增)

        我们来测试一下。

1.continue继续循环:


for n = 1:10
     if(n==4)
           continue;
     
     end
     fprintf('n = %d\n',n);
end

        运行结果:

        没有输出4

Matlab中的循环

2. break终止循环:


for n = 1:10
     if(n==4)
           break;
     
     end
     fprintf('n = %d\n',n);
end

运行结果:

        输出完1到3就结束循环了。

Matlab中的循环

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢