Matlab(六)
1.Matlab语言流程结构
循环结构可以由for语句或while语句引导,用end语句结束
(1)for语句的一般结构:
for i = V ,循环结构体,end
循环变量i,每次从向量V取一个值,直至V中数据取完,就退出循环
(2)while语句的基本结构
while(条件句),循环结构体,end
条件句如果为真,执行循环结构体,
为假退出循环结构体
问:用循环结构求0~100的和
(1)for循环结构
Trial>> sum = 0;
Trial>> for i = 1:100 sum = sum +i;end
Trial>> sum
sum =
5050
(2)while循环结构
Trial>> sum = 0;i = 1;
Trial>> while(i <= 100) sum = sum + i;i = i + 1;
end
Trial>> sum
sum =
5050
问:1+2+3.....+m < 1000m的最小值
Trial>> i = 1;sum = 0;
Trial>> while(sum < 1000) sum = sum + i;i = i +1;end
Trial>> m = i
m =
46
采用循环结构与向量编程的效率比较:
//tic和toc用来记录matlab命令执行的时间。
tic用来保存当前时间,而后使用toc来记录程序完成时间。
测试题:
求S = ∑(i(1~100000)(2^(-i)+3^(-i))
(1)循环结构结果
Trial>> tic,s = 0;for i = 1:100000,s = s +1/2^i+1/3^i;end;toc
时间已过 0.077887 秒。
(2)向量化编程
tic,i = 1:100000;s = sum(1./2.^i+1./3.^i);toc
时间已过 0.013406 秒。
2.转移结构
if(条件句)
执行体1
else if(条件句)
执行体2
else
执行体3
End
3.开关结构
switch 开关表达式
case 表达式1
语句段1
........
otherwise
语句段n
end
4.试探结构
try ,语句段1,
catch,语句段2,
End
若语句段1发生错误,则执行语句段2
问:用for语句写 1+2+3....+m>100000 m的最小值
Trial>> sum = 0;
Trial>> for m = 1:100000 sum = sum + m;if sum > 100000, break;end
end
Trial>> m
m =
447