武科大MATLAB 复习总结Word文件下载.docx
《武科大MATLAB 复习总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《武科大MATLAB 复习总结Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
清除MATLAB工作空间中保存的变量
quit
dir
列出指定目录下的文件和子目录清单
return
返回到上层调用程序;
结束键盘模式
doc
在MATLAB浏览器中,显示帮助信息
type
显示指定M文件的内容
diary
把指令窗输入记录为文件
which
指出其后文件所在的目录
12.matlab常用的函数
函数
描述
数学函数
abs(x)
计算x的绝对值
acos(x)
计算x的反余弦函数
angle(x)
计算复数x的幅角
asin(x)
计算x的反正弦函数值
atan(x)
计算x的反正切函数值
atan2(y,x)
atan(y/x)
polyder
求导
cos(x)
cosx
exp(x)
ex
log(x)
logex
[value,index]=max(x)
返回x中的最大值,和它所处的位置
[value,index]=min(x)
返回x中的最小值,和它所处的位置
mod(x,y)
余数
sin(x)
sinx
sqrt(x)
x的平方根
tan(x)
tanx
1.mod(x,m):
x整除m取正余数;
rem(a,b):
a整除b,求余数
2.matlab中对数函数只有三个:
log(底数为e)、log10、log2;
用其他底
rounding(取整)函数
floor
不大于自变量的最大整数
ceil(x)
不小于自变量的最小整数
fix(x)
向0方向取整
round(x)
四舍五入取整
字符转换函数
char(x)
将矩阵中的数转化为字符,矩阵中的元素就不大于127
double(x)
将子符串转化为矩阵
int2str(x)
将整数x转化为字符串形式
num2str(x)
将带小数点的数转化为一个字符型数组
str2num(x)
将字符串转化为数
数的要用换底公式
取整函数会用在判断数是否为整数,如:
fix(n)==n
画图函数
函数描述
plot
二维图形基本函数
polar
极坐标图
bar
条形图
loglog
双对数坐标图
semilogx
X轴为对数的坐标图
semilogy
Y轴为对数的坐标图
axis
设置坐标轴
清除图形窗口内容
close
关闭图形窗口
figure
创建图形窗口
grid
放置坐标网格线
hold
保持当前图形窗口内容
legend
图例标记
subplot
创建子图
text
放置文本
xlabel
放置X轴坐标标记
ylabel
放置Y轴坐标标记
axisequal
纵、横轴采用等长刻度
axissquare
产生正方形坐标系
axistight
把数据范围直接设为坐标范围
Surf
三维曲面图形
mesh
三维网线图
注:
axison(指令)和axis('
on'
)(函数)是等价的
画图相关属性设置表
颜色
标记类型
线型
y
黄色
.
点
-
实线
m
品红色
o
圈
:
点线
c
青绿色
x
×
号
-.
画点线
r
红色
s
正方形
--
虚线
g
绿色
d
菱形
<
none>
无
b
蓝色
v
倒三角
w
白色
^
正三角
k
黑色
>
三角(向右)
三角(向左)
p
五角星
h
六线形
属性
说明
LineWidth
用来指定线的宽度
MarkerEdgeColor
用来指定标识表面的颜色
MarkerFaceColor
填充标识的颜色
MarkerSize
指定标识的大小
如:
plot(x,y,’yo:
’)
plot(x,y,'
LineWidth’,2,...)
\bf
黑体
\it
斜体
\rm
恢复正常字体
\fontname
字体的名字
\fontsize
字体的大小
_{xxx}
xxx做为某字符的上标
^{xxx}
xxx做为某字符的下标
●数组的创建
1、递增/减型行(列)数组的创建
(1)冒号生成法;
d=1:
2:
7则d=[1,3,5,7]
(2)线性(或对数)定点法
X=linspace(a,b,n)等价于x=a:
(b-a)/(n-1):
b
X=logspace(a,b,n)
2、其他类型行(列)数组的创建
(1)逐个元素输入法;
(2)运用MATLAB函数生成法
作用
zeros(n)
创建一个n×
n零矩阵
zeros(n,m)
m零矩阵
zeros(size(arr))
创建一个与数组arr的零矩阵
ones(n)
n元素全为1矩阵
ones(n,m)
m元素全为1矩阵
eye(n)
n的单位矩阵
eye(n,m)
m的单位矩阵
length(arr)
返回一个向量的长度或二维数组中最长的那一维的长度
size(arr)
返回指定数组的行数和列数
冒号的作用和end的作用
a=[14710
25811
36912]
a(2:
3,2:
4)=a(2:
end,2:
end)
ans=5811
6912
a([1,2],2:
5)
ans=410
511
c=[14710
25811
36912]
(a)c(2,:
)
ans=
25811
(b)c(:
end)
ans=
10
11
12
(c)c(1:
2,2:
ans=
4710
5811
(d)c(6)
6
(e)c(4:
456789101112
(f)c(1:
4)
4710
5811
(g)c([13],2)
ans=4
6
(h)c([22],[33])
88
3.修改数组中的某些元素
1.arr(3,3)=99
arr=
14710
25811
369912
2.arr([2,3],[3,4])=eye
(2)
arr=14710
2510
3601
3.arr(1:
3)=magic(3)
带有下标的赋值维度不匹配。
赋值等号两边的数组大小要相同,除非标量。
4.arr(1:
3)=0
arry=
10010
20011
30012
4.数组扩展
1.arr(4,3)=13
arr=
36912
00130
2.arr(4:
6,4:
6)=magic(3)
arr=1471000
2581100
3691200
000816
000357
000492
5.删除数组中的行和列
1.arr(2,:
)=[]
14710
2.arr(:
3)=[]
1410
2511
3612
3.arr(2,3)=[]
6.数组操作函数
rot90
矩阵旋转90度
tril
矩阵的下三角
fliplr
矩阵左右翻转
diag
对角矩阵和矩阵的对角化
det
行列式的值
reshape
矩阵元素重新排列
triu
矩阵的上三角阵
compan
伴随矩阵
inv
矩阵的逆
flipud
矩阵上下翻转
例子:
A=12
34
7.常见的数组和矩阵运算
运算
MATLAB形式
注释
数组加法
A+B
数组加法和矩阵加法相同
数组减法
AB
数组减法和矩阵减法相同
数组乘法
A.*B
A和B的元素逐个对应相乘.两数组之间必须有相同的形,或其中一个是标量.
矩阵乘法
A*B
A和B的矩阵乘法.A的列数必须和B的行数相同.
数组右除法
A./B
A和B的元素逐个对应相除:
A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量.
数组左除法
A.\B
B(i,j)/A(i,j)两数组之间必须有相同的形,或其中一个是标量.
矩阵右除法
A/B
矩阵除法,等价于A*inv(B),inv(B)是B的逆阵
矩阵左除法
A\B
矩阵除法,等价于inv(B)*A,inv(A)是A的逆阵
数组指数运算
A.^B
AB中的元素逐个进行如下运算A(i,j)^B(i,j),A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量.
矩阵除
A*X=B
A=B/X=B*inv(X)%RightDivision
X=A\B=inv(A)*B%LeftDivision
数组除
a.*x=b
x=b./a%RightDivision
=a.\b%LeftDivision
8.求逆矩阵的三种方法
inv(A),A^(-1),eye(3)/A,A\eye(3)
8.循环分支和向量化编程
(1)编写一段MATLAB程序用以计算下述函数的值:
自变量
的取值范围为[-9,9],步长取0.5.使用两种方法,一次运用循环和分支结构,一次运用向量化编程.
●循环和分支结构,
t=-9:
0.5:
9;
forii=1:
length(t)
ift(ii)>
=0
f(ii)=-3*t(ii).^2+5;
else
f(ii)=3*t(ii).^2+5;
end
end
●向量化编程.
b=t>
=0;
f(b)=-3*t(b).^2+5;
f(~b)=3*t(~b).^2+5;
注意下:
switch语句结构
Continue:
结束这次循环,继续后面的循环
Break:
结束所在的循环。
执行循环体后面的语句
图形绘制
(1)创建一幅按行排列的双子图系统.在左边的子图中,用蓝色的线绘制指数函数
的图形,再用红色的线绘制其渐近线
.自变量x的取值范围为
,步长取0.01.并将坐标轴显示范围限制在
.在右边的子图中,绘制由
定义的网格图,其中
,步长均取0.01.注意由于Z为复数函数,这里只需画出Z的实部关于X和Y的网格图即可.
答案:
subplot(1,2,1)%1'
x=-5:
0.01:
5;
%1'
y=exp(x+1)-1;
%2'
y1=-1;
plot(x,y,x,y1,'
r'
);
%2'
axis([-5,2,-2,2]);
subplot(1,2,2)%1'
[X,Y]=meshgrid(-1:
1,-2*pi:
2*pi);
%3'
Z=exp(X+Y*i);
mesh(X,Y,real(Z));
数值计算可能会涉及的函数:
多项式微分
函数polyder多项式的微分运算,调用方法为
d=polyder(A)
上述语句完成对多项式A的微分,返回值为多项式d,其维数比A小1
【例】求多项式x8+3x6+5x5+12x4+36x2+x+55的微分。
A=[103512036155];
b=polyder(A)
b=
801825480721
自定义函数
writeafunctiontosatisfythefollowingrequest:
whenthereisnoinputargument,plotaunitcirclewithredline;
whentheinputisanaturalnumberNwhichisgreaterthan2,plotregularpolygonwithNsides;
whentheinputisnotanaturalnumber,giveerrorinformation.Testyourfunctionbyplottinganoctago
参考答案:
polygon.m
functionpolygon(n)---4分
%plotregularpolygon
ifnargin==0
n=100;
end----4分
iffix(n)==n&
&
n>
2----2分
t=0:
2*pi/n:
2*pi;
x=sin(t);
y=cos(t);
plot(x,y,'
r-'
)----4分
elseiffix(n)~=n
error('
theinputmustbeanaturalnumber'
)---2分
end
>
f=polygon(8)enter---4分
函数文件脚本文件的差异:
①函数文件的第一行总是以function引导的函数申明行;
脚本文件没有。
---1分
②MATLAB允许使用比标称数目少的输入/输出量,实现对函数的调用;
脚本文件不能被调用---1分
③每当函数文件运行时,MATLAB专门为它开辟一个临时工作空间,称为函数工作空间。
所有中间变量都放在函数工作空间中。
当执行完最后一条指令或遇到return,结束该函数文件的运行,同时该临时空间及所有的中间变量立即被清除。
脚本文件产生的变量都在基本工作空间中---1分
④函数空间随具体M函数文件的被调用而产生,随调用结束而删除;
基本工作空间MATLAB的启动而产生,随MATLAB的关闭而删除---1分
⑤如果在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量都存放于那个函数空间之中,而不是放在基本空间
M文件的五个特点
●函数文件的第一行总是以function引导的函数申明行;
●MATLAB允许使用比标称数目少的输入/输出量,实现对函数的调用;
●当函数文件运行时,MATLAB会专门为它开辟一个临时工作空间,称之为函数工作空间,所有中间变量都存放在函数工作空间中。
当执行完最后一条指令或遇到return,就结束该函数文件的运行,同时该临时函数空间及其所有中间变量立即被清除;
●函数空间随M函数文件的被调用而产生,随调用结束而删除。
函数空间相对于基本空间是独立的、临时的。
在MATLAB整个运行期间,可以产生任意多个临时函数空间;
●假如在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量都存放于那个函数空间之中,而不是存放在基本空间;
注意find函数:
|find()函数将返回逻辑关系全部满足时的矩阵下标值,这个函数在编程中是相当常用。
X=(2:
5)-3;
Y=find(X>
2);
X=
-1012
Y=[]