null欢 迎 学 习
欢 迎 学 习
微机应用软件null课时安排:
1、Matlab简介 32学时
2、数据与图像处理(Origin、 Photoshop) 4学时参考数目:
1、《MATLAB与科学计算》(第2版)王沫然
电子工业出版社
2、《计算机在材料科学中的应用》 许鑫华
机械工业出版社
《数学物理方程的MATLAB解法与可视化》
彭芳麟 清华大学出版社学习要求:
1、准备一个笔记本兼作业本。
2、自己独立编程。第1章 MATLAB简介第1章 MATLAB简介
MATLAB是英语Matrix Laboratory(矩阵实验室)的缩写
MATLAB是当今国际上公认的在科技领域最为优秀的应用软件和开发环境。在欧美各高等院校,MATLAB已经成为应用线性代数、自动控制理论、数据统计、数字信号处理、图形处理等高级课程的基本数学工具,是理工科本科生、硕士生、博士生必须掌握的基本技能。在
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
研究单位和工业部门,MATLAB已经超出实验室,广泛用于研究和解决具体的工程问题。
国内部分重点高校已作为理工学生的必修或选修课。null现在Matlab已经成为一个系列产品:
主包中有数百个高度优化的内部函数。
工具包(Toolbox),又分为两类:
功能性工具包
主要用来扩充MATLAB的数值分析、矩阵运算、数字信号处理、符号计算功能、图形建模仿真功能、文字处理功能、与硬件实时交互功能。这种工具包能用于多种学科。
学科性工具包 是专业性比较强的,如:
控制系统工具包(Control System Toolbox)、
通信工具包(Communication Toolbox)、
图象处理工具包(Image Processing Toolbox)、
统计工具包(Statistic Toolbox)
偏微分方程工具包(Partial Differential Equation Toolbox)Matlab语言的特点:Matlab语言的特点:1、极强的数值计算功能、作图功能和符号
计算功能。数值计算主要内容:矩阵的创建和保存,数值矩阵代数、乘方运算和分解,数组运算,多项式和有理分式运算,数理统计分析、差分和数值导数,用于求积分和微分方程的数值解和功能函数等。
在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。利用MATLAB可以轻易地绘制二维、三维曲线,三维曲面,并可进行图形和坐标的标识、坐标控制、图形的迭绘、视角和光照设计、色彩精细控制等及绘制动画,简单易行。 nullMatlab语言的特点:2、用户使用方便,语句简单,内涵丰富。MATLAB是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序。
Matlab语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。
把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序中的
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度。 nullMatlab语言的特点:3、最受人欢迎的特点——开放性。除内部函数外,所有MATLAB主包文件和各工具包文件都是可改的源文件。用户通过对源文件的修改,或加入自己编写的文件去构成新的专用工具包。
高版本的Matlab已逐步扩展到科学及工程计算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。 1.1.1 MATLAB的操作界面
1.1.1 MATLAB的操作界面
1、操作桌面窗口菜单项;
工具栏;
【Command Window】指令窗口;
【Launch Pad】工作
目录
工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录
窗口;
【Command History】指令
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
窗口;
【Workspace】内存空间窗口;
【Current Directory】当前工作目录窗口;nullMATLAB操作窗口接受命令的窗口null2、指令窗的使用
①数值计算
>>2*sin(pi/3)+5*i -2^2/3
②演示内带程序
>>ballode
%自由下落小球与地面非弹性碰撞的运动轨迹
③演示Matlab的基本功能
>>demo3、指令窗操作注意事项
①怎样改变数字属性和字体
②指令和变量名要区分大小写
③应该指定输出变量名
④常用符号
; 不显示结果 … 命令延续到下一行
↑ 重新调入上一命令行 ↓重新调入下一命令行
null
1.1.2 在线帮助
1、帮助系统指令
>>help+指令名称2、常用指令
who 列出内存中的变量名
Type 显示指定文件的内容
whos 列出内存中的变量名及其性质
clear 清除内存Matlab功能展示Matlab功能展示例1:求解线性方程组在Matlab指令窗口输入命令:
a=[2,3,-1;8,2,3;45,3,9];
b=[2;4;23];
x=inv(a)*b
x1=a\b 例2:绘制正弦曲线和余弦曲线,在指令窗口输入命令:
x=[0:0.5:360]*pi/180;
%x从00到3600并转换为弧度
plot(x,sin(x),x,cos(x))
%绘制正弦曲线和余弦曲线null例3:输入10个学生的成绩并对成绩按升序排序。
在指令窗口输入命令:
g=input('请输入学生成绩:')
sort(g)
请输入学生成绩: [65 78 96 98 91 84 79 83 74 81]
§1.2 矩阵与表达式
1.2.1 数据、变量名、算符与表达式
§1.2 矩阵与表达式
1.2.1 数据、变量名、算符与表达式
1、数据格式: ① 10的幂为e加上正负数字: 1.062e-20 6.022e23
② 数字后直接加 i 或 j表示虚数 :-3.14i 5+3i 2、算符
算术运算算符: + - * / ^ ( ) sqrt( )
关系运算算符:<、>、 <=、 ==、 >=、 ~=
逻辑运算算符:与 &、或│、非 ~3、表达式从左至右、指数最先,乘除加减、括号提前。例1:
>>6+4*3^2
ans =
42>> x=(5+cos(47*pi/180))/(1+sqrt(7)-2i)4、变量4、变量①命名规则
字母打头,后面可以为字母、数字、下划线等,但不 能为空格符、标点。
区分大小写 Abc ABc
例:MYvar12、12Myvar_ 、MY_Var12、_MyVar12√ × √ ×②保存和查询
所有变量都保存在工作内存空间workspace中。
whos 查询、clear 清除。
MATLAB 的保留常量
ans 预设的计算结果变量名 i 或 j 虚数单位
eps 正的极小值=2.2204e-16 inf ∞值,如1/0
pi π=3.1415926 NaN 不定值,如0/0, ∞/ ∞ 5、函数
5、函数
②建造函数,三种方法:
inline指令建造在线函数
用符号变量建造
用M文件建造
③inline指令
函数名=inline( '函数内容' ,自变量列表)例:建立一个带参数θ的x 的函数 ff=cos2x2+θ
并想得到x=3,θ=2.1时的函数值。>> ff=inline('cos(x^2)^2+theta','x','theta')>> ff(3,2.1)①常用函数: abs 绝对值 sqrt平方根 exp指数 log自然对数
sin正弦 cos余弦 tan正切 asin反正弦 sinh 双曲正弦 特殊函数:bessel 贝塞尔函数 gamma 伽马函数 null④如果对一系列数求函数值,或变量是矢量,可将函数
矢量化。
方法1:使用指令vectorize
>>aaa=vectorize(ff)方法2:输入时使用对数组运算的算符
>> fff=inline('cos(x.^2).^2+theta','x','theta')
fff =
Inline function:
fff(x,theta) = cos(x.^2).^2+theta
求x=3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0
时对应的函数值>> x=3:0.1:4
A=aaa(x,2.1)
B=fff(x,2.1)1.2.2 矩阵1.2.2 矩阵1、定义矩阵
方法1:直接输入法,用空格或逗号分割同一行的元素,用分号结束一行元素,用方括号括起整个矩阵。数据分类:标量(scalar)、矢量(vector)、
矩阵(matrix)、列阵(array)>> B=[16 3 2 13; 5 10 11 8; 9 6 7 12;4 15 14 1]
B =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1>> A=[1 2 ,6 9 8 ]
A =
1 2 6 9 8null方法2:用Matlab的指令函数生成zeros 零矩阵 ones 全部元素为1的矩阵
eye 单位矩阵 rand 均匀分布的随机数矩阵
magic 幻方阵 randn n维正态分布的随机数矩阵
cell 空矩阵 diag对角矩阵或提取对角元
linspace 等间距的矢量 logspace 对数等分的行矢量Diag(a,k)
k=o是主对角线,k > 0 在主对角线上, k < 0在主对角线下>> Z=zeros(2,4)
Z =
0 0 0 0
0 0 0 0>> F=5*ones(3,3)
F =
5 5 5
5 5 5
5 5 5
>> R=randn(4,4)
R =
-0.4326 -1.1465 0.3273 -0.5883
-1.6656 1.1909 0.1746 2.1832
0.1253 1.1892 -0.1867 -0.1364
0.2877 -0.0376 0.7258 0.1139
>> a=[1,3,5];
>> diag(a)
ans =
1 0 0
0 3 0
0 0 5>> diag(a,-1)
ans =
0 0 0 0
1 0 0 0
0 3 0 0
0 0 5 0>> diag(a,1)
ans =
0 1 0 0
0 0 3 0
0 0 0 5
0 0 0 0null>> magic(3)
ans =
8 1 6
3 5 7
4 9 2>> eye(3)
ans =
1 0 0
0 1 0
0 0 1>> linspace(2,5,6)
ans =
2.0000 2.6000 3.2000 3.8000 4.4000 5.00000>> cell(3)
ans =
[] [] []
[] [] []
[] [] []Magic(n)为元素1到n^2
之间,行、列、对角线
的和都相等的n维矩阵作业作业3、建立一行矢量为1到10间等间距的8个数。
4、用help指令查询cumsum指令的用法,建立一个
3×3的矩阵并用cumsum指令求各列元素的累计和。
5、调用Demos窗口,选择其中各个条目并阅读窗口的
说明,浏览MATLAB的基本功能。
null欢 迎 学 习
欢 迎 学 习
微机应用软件null1.2.2 矩阵1、定义矩阵
方法1:直接输入法
方法2:用Matlab的指令函数生成
linspace 等间距的矢量
linspace(x1, x2, N) 在x1, x2产生N个等间距的点
logspace 对数等分的行矢量
logspace(x1,x2,n) 生成从10x1到10x2包含n 个数据的矢量 2、标识矩阵元素
3、修改矩阵 4、矩阵操作的指令和算符
1.2.3 符号变量
1.2.4其它数据结构
2、标识矩阵元素
标识元素是指标识某个、某行或某列元素
2、标识矩阵元素
标识元素是指标识某个、某行或某列元素例:
A =[16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1]
怎样标识 11?A(2,3)或A(10)注意:
a.在查找矩阵元素A( i,j)时,若
i,j 超出了矩阵行数和列数,则显
示出错信息。
b.储存元素A( i,j)时,若 i,j 超出
了矩阵行数和列数,则矩阵自动
扩充并以零填补没有输入的元素。1.2.2 矩阵②冒号算符②冒号算符用法1:生成矢量、矩阵
>> M=1:10 %步长为1的行矢量
M =
1 2 3 4 5 6 7 8 9 10>> B=0:pi/4:pi %步长为π/4的行矢量
B=
0 0.7854 1.5708 2.3562 3.1416用法2:表示矩阵的一部分或者一行或一列的全部元素
如:A( :, j) 矩阵A的第j列 A( i,: ) 矩阵A的第I行
A(1 :k, j) 矩阵A的第j列的前k个元素 小知识:end 表示最后一个元素
如:A(end, j) 矩阵A的第j列的最后一个元素
A( i,end ) 矩阵A的第I行的最后一个元素>> M(10:-1:4) %M的第十个元素和第四个元素的倒排
ans =
10 9 8 7 6 5 4?A(end,:)3、修改矩阵
①合并
3、修改矩阵
①合并
>> A(2:2:6)=[ ]
A =
1 7 6?>> B1=B(1:2:end,:)③逻辑下标③逻辑下标可以利用具有逻辑运算功能的指令过滤数据>> x=[2.1 1.7 1.6 1.5 NaN 1.9 1.8 1.5 5.1 1.8 1.4 2.2]
>> isfinite(x) %判断元素是否为有限数
ans =
1 1 1 1 0 1 1 1 1 1 1 1
>> x=x(finite(x)) %有限数取值,非数或无穷数去掉
>> x=x(abs(x-mean(x))<=2*std(x))
%abs 绝对值 mean平均值 std
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
差4、矩阵操作的指令和算符
①三类指令
4、矩阵操作的指令和算符
①三类指令
标量函数 对矩阵中的每一个元素 如:sin(A)
矢量函数 对矩阵中的每一列元素 如:max(A)
矩阵函数 对矩阵中的全体元素 如:inv(A)求逆>> B=[pi/6,pi/4;pi/3 pi/2];
>> sin(B) %标量函数
ans =
0.5000 0.7071
0.8660 1.0000>> A=[1 2 3;
4 5 6;
7 8 9];
>>max(A) %矢量函数
ans =
7 8 9>> sum(A) %各列元素之和
ans =
12 15 18>> prod(A) %各列元素之积
ans =
28 80 162
>> mean(A) %各列的平均值
ans =
4 5 6>> B=[2 4 6;
1 5 9;
7 3 8]
>> median(B) %各列的中位元素
ans =
2 4 8null矩阵函数>> G=[1 8 4;6 8 8;3 5 8];
>> [X,V]=eig(G)
%求矩阵本征值与本征函数
X =
-0.4681 -0.8920 -0.5321
-0.7173 0.4505 -0.4583
-0.5161 0.0378 0.7119
V =
17.6707 0 0
0 -3.2096 0
0 0 2.5390%求矩阵行列式的值
>> det(G)
ans =
-144%求矩阵的逆
>> inv(G)
ans =
-0.1667 0.3056 -0.2222
0.1667 0.0278 -0.1111
-0.0417 -0.1319 0.2778
②两种算符②两种算符矩阵运算算符:按矩阵运算法则定义
数组运算算符:按矩阵的对应元素进行运算>> c=x/2
c =
0.5000 1.5000 2.0000
1.0000 3.0000 2.5000
1.5000 1.0000 2.0000nullb:数组间的四则运算
注意:1、参与运算的数组必须具有相同的维数。
2、加、减不变,乘、除加点。>> a=[1 3 4;2 6 5;3 2 4];
>> b=[2 3 1;4 1 2;4 5 3];
>> c=a+b
c =
3 6 5
6 7 7
7 7 7>> c=a.*b %注意点乘
c =
2 9 4
8 6 10
12 10 12
>> c=a./b %注意点除
c =
0.5000 1.0000 4.0000
0.5000 6.0000 2.5000
0.7500 0.4000 1.3333c:数组的幂运算(.^)
>> c=a.^2
c =
1 9 16
4 36 25
9 4 16
>> c=a^2 %矩阵的幂运算
c =
19 29 35
29 52 58
19 29 38>> c=a.^b %数组的幂运算为各对
应元素间的运算
c =
1 27 4
16 6 25
81 32 64
a./b=b.\anull 矩阵运算:
▲矩阵的加减运算与数组运算相同
▲乘除运算要满足矩阵运算法则.>> a=[1 2 3;
2 3 4];
>> b=[4 5;
1 3;
8 2];
>>c= a*b
c =
30 17
43 27
>> A=[15 7 5;12 3 14;7 10 11];
>> B=[6 7 3;11 14 13;4 10 9];
>> C=A*B
C =
187 253 181
161 266 201
196 299 250
>> A\C
ans =
6.0000 7.0000 3.0000
11.0000 14.0000 13.0000
4.0000 10.0000 9.0000
>> C/B
ans =
15.0000 7.0000 5.0000
12.0000 3.0000 14.0000
7.0000 10.0000 11.0000★注意:若A*B=C,
则B=A\C, A=C/Bnull矩阵的转置
对于实矩阵用(’)符号或(.’)求转置结果是一样的;然而对于含复数的矩阵,则(’)将同时对复数进行共轭处理,而(.’)则只是将其行列重排 。 >> A=[1+3i 3+5i
2+4i 6+7i];
>> A'
ans =
1.0000 - 3.0000i 2.0000 - 4.0000i
3.0000 - 5.0000i 6.0000 - 7.0000i
>> A.'
ans =
1.0000 + 3.0000i 2.0000 + 4.0000i
3.0000 + 5.0000i 6.0000 + 7.0000i1.2.3 符号变量1.2.3 符号变量 一、符号变量的生成
1、用单引号生成
>> f='exp(x)'
f =
exp(x)
>> g='a*x^2+b*x+c=0'
g =
a*x^2+b*x+c=0
>> h='D2y-2Dy-3y=0'
h =
D2y-2Dy-3y=02、用函数sym来生成
>> x=sym('ax+b=0')
x =
ax+b=0
>> A=sym('[a b c;d e f]')
A =
[ a, b, c]
[ d, e, f]3、用函数syms来生成
>> syms x y z a
>> g=sin(x)/x
g =
sin(x)/x什么是符号运算(与数值运算的区别)
※ 数值运算中必须先对变量赋值,然后才能参与运算。
※ 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。null2、符号变量的运算
>> syms x
>> g=sin(x)/x
g =
sin(x)/x
>> limit(g,0)%求极限
ans =
1>> subs(g,x,0.5) %赋值
ans =
0.9589Subs(函数名,变量,数值)用符号变量生成带参数的函数
例:FF=cos2(x2)+θ求出在
x=3, θ=2.1时的函数值并求导。>> GG=sym('cos(x^2)^2+theta')
GG =
cos(x^2)^2+theta
>> subs(GG,{'x','theta'},{3,2.1})
ans =
2.9302
或:
>> syms x theta
>> subs(GG,{x,theta},{3,2.1})
>> diff(GG,x) %求导
ans =
-4*cos(x^2)*sin(x^2)*x
diff(函数名,变量)1.2.4其它数据结构1.2.4其它数据结构一、列阵
1、结构列阵(array)储存多维数组;
数据网格(meshgrid)储存二元或三元数据对;
基元列阵(cell)储存大小不同的矩阵;
结构数组(struct)可同时存入字符串和数据;
字符串(char)存入字符和文本。A( i, j, k)
行列层A1,1 A1,2 A1,3
A2,1 A2,2 A2,3
A3,1 A3,2 A3,3A( i,j)例:A(3,2,1,2)表示?null约定:Dim维 : 1 列;2 行;3 层; 4 块2、列阵的生成
指令1: cat(dim,A1,A2,A3,…)
沿着dim指定的方向将A1,A2,A3,…组合成一个矩阵>> A=[1 3;5 7]
A =
1 3
5 7
>> B=[2 4;6 8]
B =
2 4
6 8
>> cat(1,A,B)
ans =
1 3
5 7
2 4
6 8
>> cat(2,A,B)
ans =
1 3 2 4
5 7 6 8
>> D=cat(3,A,B)
D(:,:,1) =
1 3
5 7
D(:,:,2) =
2 4
6 8 指令2:
repmat(A,[m,n,p…])
将矩阵A在列、行、层…
的方向分别复制m,n,p …次例:>> repmat(A,[2,3,3])二、数据网格二、数据网格>> Z=(X.^2+Y.^2)
surf (X,Y,Z)%画出三维立体图
Z =
0 1 4 9
1 2 5 10
4 5 8 13
9 10 13 180 1 2 33 2 1 >> x=[0 1 2 3];y=[0 1 2 3];
>> [X,Y]=meshgrid(x,y)
X =
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
Y =
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 31、定义:把平面上区域内所有
点的坐标表示出来的2个矩阵叫
平面上的数据网格。2、指令:[X,Y]=meshgrid(x,y)
[X,Y]=meshgrid(x)
[X,Y,Z]=meshgrid(x,y,z)三、基元列阵三、基元列阵 基元列阵可以将不同的数据按照与矩阵相似的结构
组织起来加以应用。
1、生成方法:可直接赋值,使用大括号定义,元素
之间用逗号隔开。例:>>G{1,1}=3;
G{1,2}=[1,2;3,5];
G{2,1}='good';
G{2,2}='sin(x)';
G
G =
[ 3] [2x2 double]
'good' 'sin(x)' 或:>>A=[1,2;3,5];
G={3,A; 'good', 'sin(x)'} 2、调用方法:使用大括号标识,
若使用小括号标识,则显示该元
素的压缩形式。
>>G{1,2}
ans=
2
3 5
>>G(1,2)
ans=
[2x2 double]
四、结构数组四、结构数组 结构数组可以将不同的数据组织在一起,还可以为它
们赋予名称,类似于关系数据库中数据的结构。指令:
生成语句 s=struct(‘field1’,values1, ‘field2’,values2,…)
查询语句 s(n)五、字符和文本五、字符和文本1、输入和查询:使用单引号输入。每个字符(包括空格)
都是字符数组的一个元素。>> s='Hello world'
s =
Hello world>> s(1,7)%查询第7个元素
ans =
w
3、利用方括号合并
>> a=s(7:11),b=s(1:6)
v=[b,a]
作业作业1、建立一个3×5的矩阵A,将A的第1、2列元素赋值给B,然后删除A的第2列元素。将矩阵B的每个元素加10赋给C。
2、建立从1到100步长为8的行矢量赋给X,提取前5个元素赋给w,再删去X的最后一个元素。
3、使用下列指令对矩阵A进行操作:
sum prod max mean std fliplr rot90 median sort
4、建立两个3×3的矩阵,对它们进行数组和矩阵的乘除运算,并比较不同之处。
5、建立一个字符串向量,然后取第1~5个字符组成的子字符串。
6、运行课本第21页和第26页的例子。nullnull? 建立一个带参数t 的x 的函数
求 t=32, x=30 40 50 60 70 80 90 100
时对应的函数值
>>fff=inline('9.*x.^2./5+t','x','t')
>> x=linspace(30,100,8)
>> A=fff(x,32)