前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab如何循环_左手转笔教程无限循环

matlab如何循环_左手转笔教程无限循环

作者头像
全栈程序员站长
发布2022-11-08 15:26:59
1.8K0
发布2022-11-08 15:26:59
举报
文章被收录于专栏:全栈程序员必看

循环输出变量

代码语言:javascript
复制
for i=1:4
    i
end

其中1:4代表一个行向量1 2 3 4,在matlab中,行向量的另外一个表示方法是[1 2 3 4],即for i=1:4等价于for i=[1 2 3 4],编写程序时牢记一个点:对于某次固定的迭代,i会从这个向量中取一个值,该值可以参与循环中的计算。

运行输出

代码语言:javascript
复制
i =
     1
i =
     2
i =
     3
i =
     4

修改迭代步长

例子:遍历1~10之间的所有奇数

代码语言:javascript
复制
for i=1:2:10
    i
end

其中1:2:10表示迭代从1开始,步长为2,最大不超过10,即代表行向量1 3 5 7 9

备注:步长可以为负值

遍历行向量变量和列向量变量

代码语言:javascript
复制
X=rand(1,5);
for i=X
    i
end
代码语言:javascript
复制
X=rand(5,1);
for i=X
    i
end

其中rand(1,5)生成一个1行5列的矩阵,即行向量;rand(5,1)生成5列1行的矩阵,即列向量。生成的向量会存放在变量X中,然后使用for i=X对向量进行遍历。

如果X为矩阵,对矩阵进行遍历

代码语言:javascript
复制
X=magic(3);
X
for i=X
    i
end

运行输出

代码语言:javascript
复制
X =
     8     1     6
     3     5     7
     4     9     2
i =
     8
     3
     4
i =
     1
     5
     9
i =
     6
     7
     2

其中magic(n)代表魔法函数(任意一行或一列的和值相等)。从运行结果中可以看出,对矩阵的循环就是在每次迭代中,依次取出矩阵的每一列。

终止循环break

代码语言:javascript
复制
X=[2 8 4 3 9 1];
for i=X
    if i==3
        disp('3 found');
        break;
    end
end

查找向量X是否含有3,如果有则终止循环。

跳过本次循环continue

代码语言:javascript
复制
X=[5 7 -1 3 -8 6];
sum=0;
for i=X
    if i<0
        continue;
    end

    sum=sum+i;
end
sum

计算向量X中所有大于0的数的和。

双重循环和多重循环

双重循环代码

代码语言:javascript
复制
X=magic(3);
X
[row,col]=size(X);
for i=1:row
    disp(['----- row: ', num2str(i),' -----']);
    for j=1:col
        disp(['col ',num2str(j),' :', num2str(X(i,j))]);
    end
end

运行输出

代码语言:javascript
复制
X =
8     1     6
3     5     7
4     9     2
----- row: 1 -----
col 1 :8
col 2 :1
col 3 :6
----- row: 2 -----
col 1 :3
col 2 :5
col 3 :7
----- row: 3 -----
col 1 :4
col 2 :9
col 3 :2

第一重循环遍历每一行,对于其中一行,在第二重循环中对该行进行遍历。在第二重循环中,一般使用X(i,j)这样的形式取出参与计算的值。这里只是对该值做了输出。

三重循环代码

代码语言:javascript
复制
toFind=[12,23,9,10];
X=magic(3);
[row,col]=size(X);
for find=toFind
disp(['---------- looking ',num2str(find)]);
found=0;
for i=1:row
for j=1:col
if X(i,j)==find
disp([num2str(find),' found at position (',num2str(i),',',num2str(j),')']);
found=1;
end
end
end
if found==0
disp([num2str(find), ' not found']);
end
end

运算输出

代码语言:javascript
复制
---------- looking 12 12 not found
---------- looking 23 23 not found
---------- looking 9 9 found at position (3,2)
---------- looking 10 10 not found

查找toFind向量中每一个值,在X矩阵中是否存在。

while循环

除了以上常用的for循环以外,在matlab中还可以使用while循环,参考doc while

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185221.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月6日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 循环输出变量
  • 修改迭代步长
  • 遍历行向量变量和列向量变量
  • 如果X为矩阵,对矩阵进行遍历
  • 终止循环break
  • 跳过本次循环continue
  • 双重循环和多重循环
    • 双重循环代码
      • 三重循环代码
      • while循环
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档