Matlab实训课Word格式.docx
- 文档编号:6445921
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:49
- 大小:986.96KB
Matlab实训课Word格式.docx
《Matlab实训课Word格式.docx》由会员分享,可在线阅读,更多相关《Matlab实训课Word格式.docx(49页珍藏版)》请在冰点文库上搜索。
formatlong1.333333333333330.00000123450000
formatlonge1.333333333333333e+0001.234500000000000e-006
formatlongg1.333333333333331.2345e-006
formatbank1.330.00
formatrat4/31/810045
formathex3ff55555555555553eb4b6231abfd271
如果表达式无法在一行输入完,用三点"
…"
加回车键表示下一行继续该语句的输入.例如:
例2:
长命令行的输入
s=1-1/2+1/3-1/4+1/5-1/6+1/7...
-1/8+1/9-1/10+1/11-1/12;
例3:
命令行的编辑(键盘上的多个箭头键和控制键允许撤消,编辑和重新执行之前的命令)和命令窗口常用指令
↑
Ctrl+p
召回上一行
指
令
及
含
义
cd
设置当前工作目录
↓
Ctrl+n
召回下一行
clf
清除图形窗
←
Ctrl+b
后退一个字符
clc
清除指令窗中显示内容
→
Ctrl+f
前进一个字符
clear
清除工作空间中保存的变量
Ctrl+→
Ctrl+r
右移一个单词
dir
列出指定目录下的文件和子目录
Ctrl+←
Ctrl+l
左移一个单词
edit
打开M文件编辑器
Home
Ctrl+a
移至行始
exit
关闭/退出
End
Ctrl+e
移至行末
quit
Esc
Ctrl+u
清除该行
more
使其后的显示内容分页进行
Del
Ctrl+d
删除光标所在字符
return
返回到上层调用程序;
Backspace
Ctrl+h
删除光标之前字符
type
显示指定M文件的内容
Ctrl+k
删除至行末
which
指出其后文件所在的目录
命令历史窗口在控制窗的输入内容都被记录在命令历史窗口中。
在命令历史中,你可以看到以前用过的函数,并且可以复制和执行选定行。
编辑器窗口用来生成和调试M-文件,这些M-文件是你为运行MATLAB函数所写的程
如果仅是要看M-文件的内容,可以用type命令使它在命令窗口中显示。
工作空间浏览器
Matlab工作空间包含内建Matlab处理任务时以及储存在记忆体中的变量排列。
你可以通过使用函数、运行M-文件、装载已存文件等方式增加变量到工作区。
双击可查看、更改变量值
3、奇异的魔方
雕版画---忧郁者I欧洲文艺复兴时期,德国的一个艺术家兼业余数学爱好者阿布列西特.杜勒的作品。
这幅图布满了各种各样的数学符号,而且如果你仔细观察的话就会发现在右上角有一个矩阵。
那个就是奇妙的魔方矩阵。
下面让我们来输入杜勒的魔方的一组元素,只要遵循下列几个基本步骤就可以了:
⏹用空格或者逗号来区分一行里不同的元素。
⏹用分号“;
”来区分不同的行。
⏹用方括号来括住全体元素。
在命令窗口输入:
A=[163213;
510118;
96712;
415141]
A=
163213
510118
96712
415141
sum(A)%每一列的数字加起来的结果
ans=
34343434
如果每一行加起来又会怎样呢?
A'
%一个矩阵的转置矩阵
16594
310615
211714
138121
sum(A'
)'
%包含由行元素的和组成的列向量
34
34
对角线元素由diag函数很容易就被列出来
diag(A)
16
10
7
1
sum(diag(A))
另外的对角线呢?
即所谓的反对角线,在数学上就不是那么重要了。
所以Matlab就没有相应的函数。
但在图形函数中,函数fliplr产生一个左右调转的矩阵。
sum(diag(fliplr(A)))
34
我们用Matlab证明了在杜勒的木板图中的那个矩阵的确是一个魔术方阵。
关于矩阵
记i行j列元素为A(i,j)。
例如A(4,2)就是第4行2列的元素。
在魔方阵中就是15。
实际上用A(k)就可以代表阵中的第k行了,这只用了一个下标。
这是经常用来表示行和列向量的方法。
也可以应用到两维的矩阵,其中的列是由原来的列一直排下去构成的。
对魔方来说,A(8)就是A(4,2)的另一中表达方法,它的值是15。
如果想用矩阵以外的值,系统就会出错。
t=A(4,5)
?
Indexexceedsmatrixdimensions.
如果输入一个数值到矩阵以外的位置,矩阵的大小就会变化来容纳新的数据。
X=A;
X(4,5)=17
X=
1632130
5101180
967120
41514117
冒号算子冒号'
:
'
是Matlab里面一个十分重要的算子,适用于各种不同的表达式。
如1:
10表示一行从1到10的整数
100:
-7:
50改变递变的间隔,指定一个间隔长度10093867972655851
按此A(1:
k,j)表示A的第j列前k个元素。
如:
A(1:
3,3)
2
11
7
因此sum(A(1:
4,4))表示计算A的第4列元素的和。
但是有一种更加方便的办法。
关键字'
:
本身可以表示某行或某列的全体元素,可以用关键字end来表示最后一行或者最后一列的全体元素,所以
sum(A(:
end))%计算A的最后一列元素的和
为什么一个4×
4的魔方矩阵的魔术和是34呢?
如果我们从1加到16再把答案除以4,答案当然是34。
实际上Matlab提供了一个函数可以计算出任意规格的魔方矩阵,毫不奇怪,这个函数就是magic。
magic(5)
17241815
23571416
46132022
101219213
11182529
【练习1】用magic函数求取杜勒的魔方矩阵。
Matlab提供产生基本矩阵的四个函数:
zeros产生一个全零矩阵;
ones产生一个全1矩阵
rand产生一个元素是均匀分布随机数的矩阵;
randn产生一个元素是正态分布的随机数的矩阵
C=zeros(2,4)
C=
0000
0000
F=7*ones(3,3)
F=
777
777
777
N=fix(10*rand(1,10))%fix函数功能是向零取整
N=
1994814979
R=randn(4,4)
R=
1.0668e+0002.9441e-001-6.9178e-001-1.4410e+000
5.9281e-002-1.3362e+0008.5800e-0015.7115e-001
-9.5648e-0027.1432e-0011.2540e+000-3.9989e-001
-8.3235e-0011.6236e+000-1.5937e+0006.9000e-001
【练习2】创建一个3×
4的1~10随机数的矩阵。
矩阵连接
连接是一个合并小矩阵成大矩阵的过程。
事实上,你创建第一个矩阵时就是通过将它的各自独立的元素连接在一起的。
中括号[]是连接的算子。
B=[AA+32;
CC]
B=
16321348353445
51011837424340
9671241383944
41514136474633
00000000
行与列的删除
X(:
2)=[]
16213
5118
9712
4141
如果删除矩阵的单个元素,其结果就不再是矩阵了。
所以,如下的表达式
X(1,2)=[]
Subscriptedassignmentdimensionmismatch.
然而,用单独的下标则是删除一个单独元素或连续的元素,并把剩下的元素改成行向量的形状。
因此
X(2:
2:
10)=[]
1692713121
加载命令
加载命令load读出含有由早期Matlab版本形成的矩阵的二进制文件,或者读出含有数值数据的文本文件。
文本文件应该由一个数字的矩阵表格构成,由空格隔开,每一线排一行,而且每一行有相同数量的元素。
如将用微软的写字板,创建一个含有这四行的文本文件,并以magic.dat为名储存。
16.03.02.013.0
5.010.011.08.0
9.06.07.012.0
4.015.014.01.0
在命令窗口
loadI:
/magic.dat%读这个文件并创建一个含有我们的矩阵例子的变量magik
magic
magic=
M-文件
用M-文件创建自己的矩阵,这些M-文件是包含Matlab代码的文本文件。
用Matlab编辑器或另外的文本编辑器去创建一个文件,它包含你将输入到Matlab命令行的同样的语句。
例如,创建一个文件含有这五行
A=[...
4.015.014.01.0];
用一个后缀名为.m的dule.m名字保存该文件。
dule%读出该文件并产生一个变量A,含有我们的矩阵示例。
Matlab与MicrosoftWord(Windows)关联
notebook%开启Word新文档,并提示Matlab此后自动作为服务器
notebook('
filename'
)%开启名为filename的Word文档,如filename不在当前路径,则应加入文件的全路径。
-setup'
)%创建Matlab与MicrosoftWord接口,命令窗口将显示创建成功与否信息。
利用Notebook可以在word环境下操作Matlab。
其产生的文件称为M-book,可包含固定的文本、Matlab命令和Matlab的输出。
Notebook的功能在于:
使用户能在Word环境中“随心所欲地享用”MATLAB的浩瀚科技资源,为用户营造融文字处理、科学计算、工程设计于一体的完美工作环境。
M-book.dot模板的外形和使用方法,几乎与普通Word模板Normal.dot完全相同。
因此,在M-book中,文字、图象、表格、数学公式等的输入、排版、编辑方法,与在普通Word文档没有什么区别。
在Notebook中,凡参与Word和Matlab之间信息交换的部分,就称之谓“Cells(Cellgroup)”。
由M-book送向Matlab的指令,称为(Inputcells);
由Matlab返回M-book的计算结果,称为(Outputcells)。
较之普通Word,Notebook最宝贵的东西就是Inputcells(group)。
从应用上讲,学会其创建和运行,就意味着掌握了Notebook。
Cells(group)创建、正确运行的两个基本操作:
以普通文本形式输入的必须是MATLAB指令。
特别注意:
标点符号必须是在英文状态下输入的。
不管文本形式的一条指令有多长,不管一行有多少条文本形式指令,不管有多少行文本形式指令,只要能用鼠标把它们同时“点亮”选中,那么可以被创建或运行,具体如下:
(A)在文本内容“点亮”后,按组合键[Ctrl-Enter],或选中下拉菜单项{EvaluateCell},那么被“点亮”部分就被激活成Inputcells(group),文字颜色将呈现为象征生命的绿色。
与此同时,细胞所含指令被送进Matlab运行,最后在该Cell的下方嵌入计算结果(数据或图形)。
这就是输出细胞,它的文字用蓝色显示。
(B)在文本内容“点亮”后,按组合键[Alt-D],或选中下拉菜单项{DefineInputCell},那么被“点亮”
部分只是变成了Inputcells(group),没被送去运行,当然也就没有运行结果。
【练习3】利用notebook功能在Word环境下,在一张图上画出一个周期内的单位幅值正弦、余弦图。
课题二Matlab数学计算
1、简单的计算
为易于学习,本节以算例算例归纳一些MATLAB最基本的规则和语法结构。
【例1】求[12+2×
(7-4)]÷
32的算术运算结果。
用键盘在Matlab指令窗中输入以下内容或在M-book中
(12+2*(7-4))/3^2
变量命名规则
✧变量名、函数名是对字母大小写敏感的。
如变量myvar和MyVar表示两个不同的变量。
sin是Matlab定义的正弦函数名,但SIN,Sin等都不是。
✧变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符)。
如myvar201是合法的变量名。
✧变量名中不得包含空格、标点、运算符,但可以包含下连符。
如变量名my_var_201是合法的,且读起来更方便。
【例2】运用以下指令,以便初步了解预定义变量。
本例演示:
预定义变量已经存在的事实;
formatlong
realmax
1.797693134862316e+308
realmin
2.225073858507201e-308
pi
3.141592653589793
多项式的表示方法和运算
【例3】p(x)=x3-3x-5可以表示为p=[10-35],求x=5时的值用
p=[10-35];
polyval(p,5)%polyval(p,a)
115
也可以求向量:
a=[345];
polyval(p,a)
2357115
求多项式的根
【例4】求x4-5x2+6的根
p=[10-506];
x=roots(p)%roots(p),p为多项式的系数向量,求得的根返回向量x。
x=
-1.7321
-1.4142
1.7321
1.4142
反过来,已知多项式的根,求该多项式用函数poly(x)
G=poly(x)
G=
1.00000.0000-5.0000-0.00006.0000
多项式乘法(执行两个数组的卷积)
【例5】求(x3+4x-1)×
(x2+8)
x1=[104-1];
x2=[108];
relt=conv(x1,x2)%conv(x1,x2)的逆运算是deconv(x1,x2)即多项式除法,返回商式及余式
relt=
1012-132-8
x_2=deconv(relt,x1)
[Qr]=deconv(x1,x2)
x_2=
108
Q=
10
r=
00-4-1
【练习1】1)求多项式3y4+2y2-8y-56,y=2.1的值。
2)求(x4+5x2-1)×
(x2-x+9)
面向复数设计的运算是MATLAB特点之一。
MATLAB的所有运算都是定义在复数域上的。
这样设计的好处是:
在进行运算时,不必像其他程序语言那样把实部、虚部分开处理。
为描述复数,虚数单位用预定义变量i或j表示。
复数z=a+bj=rejθ直角坐标表示和极坐标表示之间转换的MATLAB指令如下:
real(z)给出复数z的实部a=rcosθ。
imag(z)给出复数z的虚部b=rsinθ。
abs(z)给出复数z的模
angle(z)以弧度为单位给出复数z的幅角
【例6】图示复数z=3+4j,z=1+2j的和
z1=4+3*j;
z2=1+2*j;
z12=z1+z2
%以下用于绘图
clf,holdon%clf清空图形窗。
逗号用来分隔两个指令。
plot([0,z1,z12],'
g'
'
LineWidth'
3)
plot([0,z12],'
-r'
plot([z1,z12],'
s'
MarkerSize'
8)
holdoff,gridon,
axisequal
axis([0,6,0,6])
text(3.5,2.3,'
z1'
)
text(5,4.5,'
z2'
text(2.5,3.5,'
z12'
xlabel('
real'
ylabel('
image'
shg
z12=
5.000000000000000+5.000000000000000i
【练习2】用Matlab计算
。
本例证实:
Matlab运算定义是在复数域的实质。
a=-8;
r_a=a^(1/3)
r_a=
1.0000+1.7321i
解答
%先构造一个多项式(p(r)=r3+a)
p=[1,0,0,-a];
%p是多项式p(r)的系数向量
R=roots(p)%求多项式的根
-2.0000
1.0000+1.7321i
1.0000-1.7321i
用图形表示
MR=abs(R
(1));
%计算复根的模
t=0:
pi/20:
2*pi;
%产生参变量在0到2*pi间的一组采样点
x=MR*sin(t);
y=MR*cos(t);
plot(x,y,'
b:
),gridon%画一个半径为R的圆
%注意“英文状态逗号”在不同位置的作用
holdon
plot(R
(2),'
.'
30,'
Color'
r'
)%画第一象限的方根
plot(R([1,3]),'
o'
15,'
b'
)%画另两个方根
axis([-3,3,-3,3])%保证屏幕显示呈真圆
holdoff
可见对复数进行方根运算时,Matlab只给出处于“第一象限”的那个根。
2、数组运算面向数组设计的运算——MATLAB特点之二
在MATLAB中,标量数据被看作(1×
1)的数组(Array)数据。
所有的数据都被存放在适当大小的数组中。
为加快计算速度(运算的向量化处理),MATLAB对以数组形式存储的数据设计了两种基本运算:
一种是所谓的数组运算;
另一种是所谓的矩阵运算。
【例4】对复数数组
进行求实部、虚部、模和幅角的运算。
复数数组的生成;
MATLAB指令对数组元素"
并行操作"
的实质。
(1)创建复数数组
AR=[1,3;
2,4]%数组标识符"
[]”;
元素分隔符空格或逗号“,”;
数组行间分隔符分号"
;
”
AI=[5,7%或"
回车"
符用来分隔数组中的行。
6,8]
A=AR-AI*i%形成复数矩阵
AR=
13
24
AI=
57
68
1.0000-5.0000i3.0000-7.0000i
2.0000-6.0000i4.0000-8.0000i
(2)求复数数组的实部和虚部
A_real=real(A)
A_image=imag(A)
A_real=
A_image=
-5-7
-6-8
(3)求复数数组中各元素的模和幅角
Am2=abs(A)
Aa2=angle(A)*180/pi%以度为单位计算幅角
Am2=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 实训课