Matlab里for循环详解

for循环用来重复指定次数,由于for、循环变量、end组成

例1:

for i = 1:5          %i为循环变量
fprintf('the value is:%f',i)
end

以下为输出结果:
在这里插入图片描述
上面的输出结果没有换行,%f和%f\n的区别就在于%f\n多了个换行,%f指的是可以输出后面想要输出的变量,\n就是换行的意思。因而%f\n表示输出后面的变量且换行:

for i = 1:5          %i为循环变量
fprintf('the value is:%f\n',i)
end

在这里插入图片描述

例2:输出10个*

%两个for循环都能输出10*,一个没换行一个换行
for i = 1:10        
fprintf('*')
end
%换了行的10*,\n即表示换行
for i = 1:10          
fprintf('*\n')
end

在这里插入图片描述
在这里插入图片描述

例3:要写一个交互性的代码,获得多个数字:

%用input一个个去写
inputnum1=input('please input a number:')
inputnum2=input('please input a number:')
inputnum3=input('please input a number:')
inputnum4=input('please input a number:')
%如果数字足够多时,用input一个个的去写几乎是不可能的事情
%for循环
for i=1:4
inputnum = input('please input a number:') %重复循环4次'please input a number:
end

但是这样做会有个后果,就是每次存储的inputnum都会覆盖前一次存储的数字。要解决这个问题:

%将循环变量赋给变量名,每次更新.但这样输出的是1行b列的数据。无法自己选择输出a行1列或者1行b列
for i=1:10
inputnum(i) = input('please input a number:')
end
%可以建立一个a行b列的空向量,将所有的数据全都存储在该空向量里
可以选择a行1列或者1行b列
%建立一个1行b列的空向量,将数据全都存储里面

inputnum=NaN(1,10) %建立一个110列的空向量
for i=1:10
inputnum(i) = input('please input a number:')
end

在这里插入图片描述

%建立一个a行1列的空向量,将数据全都存储里面

inputnum=NaN(10,1) %建立一个101列的空向量
for i=1:10
inputnum(i) = input('please input a number:')
end

在这里插入图片描述

例4:输入5个数字并让其进行累加

sum = 0
for i=1:5
    num = input ('please input a number:')%每输入一个number都会覆盖前一个num
    sum =  sum + num
end
sum = 0
for i= 1:5
    num(i) = input('please input a number:') %将每次输入一个的存储到num(i),number不会覆盖前一个num
    sum = sum +  num(i) % 从sum=0开始累加,要加的是num(i),因为num是一个储存所有数据的集合,num(i)是一个个要加的数据
end
num =NaN(5,1) %建立一个51列的空矩阵,可以将数据存储到空矩阵中
sum = 0
for i= 1:5
    num(i) = input('please input a number:') %将每次输入一个的存储到num(i),number不会覆盖前一个num
    sum = sum +  num(i) % 从sum=0开始累加,要加的是num(i),因为num是一个储存所有数据的集合,num(i)是一个个要加的数据
end

例5:写一个随机执行3-10次的循环,并将其累加

n = randi([3,10]) %随机生成一个在3-10之间的整数
sum = 0
for i = 1:n
num(i) = input('please input number:')
sum = sum + num(i)
end 

例6:写一个随机执行3-10次的循环,并将其累乘

n = randi([3,10]) %随机生成一个在3-10之间的整数
product = 1
for i = 1:n
num(i) = input('please input number:')
product = product * num
end 

注: 在如果循环的次数很多时,提前定义一个空向量来作为存储是十分重要的!称之为向量预分配,这样能够大大的降低matlab的工作负荷。

  • 5
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华毓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值