MATLAB 02:条件与循环
背景
利用三周时间(2019年10月20日起)学习matlab的基本语法知识,了解matlab在线性代数、微积分中的少量应用。
任务划分如下:
• 预准备:安装matlab,熟悉软件(1天)
• 模块一:MATLAB编程与数据类型
– Task01:MATLAB.m文件(3.1-3.5)(1天)
– Task02:条件与循环(3.6-3.9)(1天)
– Task03:数据类型(3.13-3.15)(1天)
– Task04:单元数组(3.16)(1天)
– Task05:结构数组(3.17)(1天)
– Task06:多维数组(3.18)(1天)
– Task07:第三章习题(1天)
• 模块二:MATLAB数据可视化
– Task01:二维图(5.1-5.9)(2天)
– Task02:三维图(5.10-5.14)(2天)
– Task03:图形属性设置及习题(1天)
– Task04:第五章习题(1天)
• 模块三:MATLAB与线性代数
–Task01:2.1-3.14(2天)
–Task02: 2.20-2.28(2天)
– 其他选学
• 模块四:MATLAB在微积分中的应用
– Task01:微分、积分运算(8.1-8.4)(1天)
– Task02: 微分方程(8.6-8.9)(2天)
• 主要参考书籍:
《MATLAB7.0应用集锦》
• 其他参考:
《matlab揭秘》
百度、谷歌
语法知识
循环:for/end
for/end用于重复多次执行for与end之间的程序语句,允许嵌套。执行的次数由变量的起点终点、增量、决定。语法格式如下:
for 变量 = 起点:增量:终点
程序语句
end
循环:while/end
while/end用于重复执行while与end之间的程序语句。执行的次数由while后边的表达式来决定。语法格式如下:
while 条件表达式
程序语句
end
条件:if/end
由if语句中逻辑表达式的值来决定是否执行它下面一组程序语句。若逻辑表达式的值为真,则执行end后边的程序;若逻辑表达式的值为假,则跳过if和end之间的程序,继续执行end以后的语句。语法格式如下:
if 逻辑表达式
程序语句
end
条件:多分支if/elseif/…/elseif
语法格式如下:
if 逻辑表达式1
程序语句1
elseif 逻辑表达式2
程序语句2
elseif 逻辑表达式3
程序语句3
else
程序语句n
end
实战演练
1、计算8阶Pascal矩阵所有元素的总和
方法1:用循环
>>A = pascal(8);
>> s = 0;
>> for i = 1:8
s = s+sum(A(i,:));
end
>> s
方法2:
>>sum(sum(pascal(8)))
注:
控制量 i = 1:8 八次循环
1、sum()对矩阵行元素求和
2、sum(A(i,:))为对矩阵的i行元素求和
3、pascal矩阵
2、用Gauss消去法使已知5阶魔方矩阵变为上三角矩阵
>> A = magic(5);
>> for j = 1:4
for i = i+1:5
A(i,:) = A(i,:)-A(i,j)/A(j,j)*A(j,:);
end
end
>> A
注:
高斯消去法
高斯消去法
*A(i,:) = A(i,:)-A(i,j)/A(j,j)A(j,:);
幻方 魔方矩阵