Matlab数据处理与分析课程教案.docx
- 文档编号:11329508
- 上传时间:2023-02-27
- 格式:DOCX
- 页数:57
- 大小:250.02KB
Matlab数据处理与分析课程教案.docx
《Matlab数据处理与分析课程教案.docx》由会员分享,可在线阅读,更多相关《Matlab数据处理与分析课程教案.docx(57页珍藏版)》请在冰豆网上搜索。
Matlab数据处理与分析课程教案
教案
2006~2007学年第二学期
学院(系、部)
计算科学系
教研室(实验室)
软件工程
课程名称
Matlab数据处理与分析
授课班级
选修课
主讲教师
职称
教案(首页)
课程
名称
Matlab数据处理与分析
课程编号
总计:
学时
学分
课程
性质
必修课
公共课□;基础课□;
专业基础课□;专业课□
讲课:
学时
实验:
学时
上机:
学时
选修课
限选课□;任选课□
考核方式
考试();考查(√)
任课
教师
职称:
授课对象
专业班级:
教材和主要考参资料
1、李丽,王振领,Matlab工程计算及应用,人民邮电出版社,2001
2、StephenJ.Chapman,MatlabProgrammingforEngineers,2ndedition,ThomsonLearning,2002
3、D.Hanselman,B.Littlefield,MasteringMatlab6,清华大学出版社,2002
教学目的和要求
目的:
重点掌握下列几方面的知识,数值数组及其运算,字符串和构架数组,数值计算,符号计算,数据和函数的可视化,图像用户界面GUI制作。
要求:
自行上机运行教案中的例题程序,加以熟练巩固,本期期未完成一个作业(从三个中选择其中一个),作为考查内容。
教学重点及难点
重点:
数值数组及其运算,数值计算,符号计算,数据和函数的可视化,图像用户界面GUI制作,构建独立应用程序。
难点:
图像用户界面GUI制作。
Matlab数据处理与分析课程教案
授课题目:
第一章Matlab环境概述
教学目的、要求:
了解:
Matlab操作环境。
熟练:
Matlab的使用界面与相关操作。
教学重点及难点:
重点:
Matlab的使用界面与相关操作。
难点:
Matlab的使用界面与相关操作
课时安排:
1
教学基本内容
1、Matlab的发展简史和特点
2、Matlab安装和内容选择。
3.Matlab的界面介绍(课件中以图形说明,并运行软件加以演示):
CommandWindow运行入门
CommandWindow操作要点。
CommandHistory和实录指令diary。
CurrendDirectory、路径设置器和文件管理。
WorkspaceBrowser和ArrayEditor。
掌握帮助系统的查询。
作业和思考题:
上机熟练Matlab环境,要求自行掌握Matlab界面的各种操作。
课后小结:
Matlab的安装与界面操作。
Matlab数据处理与分析课程教案
授课题目:
第二章数值数组及其运算
教学目的、要求:
了解:
数组的概念
掌握:
一维数组的创建和寻访,二维数组的创建,二维数组的下标标识,子数组的寻访与赋值,数组运算与矩阵运算。
教学重点及难点:
重点:
一维数组的创建和寻访,二维数组的创建,二维数组的下标标识,子数组的寻访与赋值,数组运算与矩阵运算。
难点:
二维数组的下标标识,子数组的寻访与赋值,数组运算与矩阵运算。
课时安排:
2
教学基本内容(以例题说明为主,运行并演示例题程序):
1、一维数组的创建和寻访
一维数组的创建
(1)逐个元素输入法:
x=[2pi/2sqrt
(2)3+5i]
x=
2.00001.57081.73213.0000+5.0000i
(2)冒号生成法:
这是通过“步长”设定,生成一维“行”数组的方法。
格式如下:
x=a:
inc:
b
(3)定数线性采样法:
该法在设定的“总点数”下,均匀采样生成一维“行”数组。
格式如下:
x=linspace(a,b,n)
(4)定数对数采样法:
该法在设定的“总点数”下,经常用对数采样生成一维“行”数组。
格式如下:
x=logspace(a,b,n)
一维数组的子数组寻访和赋值
例:
子数组的寻访(Address)。
rand('state',0)
x=rand(1,5)
x=
0.95010.23110.60680.48600.8913
x(3)
ans=
0.6068
x([125])
ans=
0.95010.23110.8913
x(1:
3)
ans=
0.95010.23110.6068
x(3:
end)%
ans=
0.60680.48600.8913
x(3:
-1:
1)%
ans=
0.60680.23110.9501
x(find(x>0.5))
ans=
0.95010.60680.8913
x([12344321])
ans=
Columns1through7
0.95010.23110.60680.48600.48600.60680.2311
Column8
0.9501
注:
此为重复寻访
例:
子数组的赋值(Assign)。
x(3)=0
x=
0.95010.231100.48600.8913
x([14])=[11]
x=
1.00000.231101.00000.8913
2、二维数组的创建
直接输入法
对于较小数组,从键盘上直接输入最简便。
二维数组必须有以下3个要素:
►整个输入数组必须以方括号“[]”为其首尾;
►数组的行与行之间必须用“;”或回车键隔离;
►每一行内的元素之间必须用逗号“,”或空格隔开;
例:
在MATLAB环境下,用下面三条指令创建二维数组C。
a=2.7358;b=33/79;
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]
C=
1.00005.4716+0.4177i0.6909
0.70714.82443.5000+1.0000i
例:
复数数组的另一种输入方式。
M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16]
CN=M_r+i*M_i
M_r=
123
456
M_i=
111213
141516
CN=
1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i
4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i
利用M文件创建和保存数组
对于今后经常需要调用的数组,尤其是比较大而复杂的数组,为它专门建立一个
M文件是值得的。
如下举例:
例:
创建和保存数组AM的MyMatrix.m文件。
(1)
%MyMatrix.mCreationandpreservationofmatrixAM
AM=[101,102,103,104,105,106,107,108,109;...
201,202,203,204,205,206,207,208,209;...
301,302,303,304,305,306,307,308,309];
(2)保存此文件,并且文件名为:
MyMatrix.m
(3)以后只要在MATLAB指令窗中,运行MyMatrix.m文件。
数组AM就会自动生
成于MATLAB内存中。
二维数组元素的标识
“全下标”标识
即指出是“第几行,第几列”,列出所有的下标。
“单下标”标识
对二维数组进行“一维编号”,按先左后右的次序、首尾相排成“一维长列”,
再编号。
有两个指令可以实现以上标识方法间的转换:
sub2ind据全下标换算出单下标
ind2sub 据单下标换算出全下标
“逻辑1”标识
例:
找出数组
中所有绝对值大于3的元素。
A=zeros(2,5);
A(:
)=-4:
5
L=abs(A)>3
islogical(L)
X=A(L)
A=
-4-2024
-3-1135
L=
10001
00001
ans=
1
X=
-4
4
5
例:
演示逻辑数组与一般双精度数值数组的关系和区别。
(本例在例2.4.3-1基础上进行)。
(1)
Num=[1,0,0,0,1;0,0,0,0,1];
N_L=Num==L
c_N=class(Num)
c_L=class(L)
N_L=
11111
11111
c_N=
double
c_L=
double
(2)
islogical(Num)
Y=A(Num)
ans=
0
?
?
?
Indexintomatrixisnegativeorzero.Seereleasenoteson
changestologicalindices.
二维数组的子数组寻访和赋值
A(r,c)由A的r指定的行和c指定的列上的元素组成。
A(r,:
)由A的r指定的行和全部列上的元素组成。
A(:
c)由A的全部行和c指定的列上的元素组成。
A(:
) “单下标全元素寻访”。
A(s) “单下标寻访”,单下标的索引的第s个元素。
A(L) 其中L为逻辑数组,生成“一维”列数组:
由与A同样
大小的“逻辑数组”L中的“1”元素选出A的
对应元素:
按单下标次序排成长列组成。
例:
不同赋值方式示例。
A=zeros(2,4)
A=
0000
0000
A(:
)=1:
8
A=
1357
2468
s=[235];
A(s)
Sa=[102030]'
A(s)=Sa注:
此为单下标赋值方式
ans=
235
Sa=
10
20
30
A=
120307
10468
A(:
[23])=ones
(2)
A=
1117
10118 注:
此为双下标赋值方式
数组运算和矩阵运算
数组运算和矩阵运算指令对照汇总
数组运算
矩阵运算
A.’
非共轭转置(conj(A’)
A’
共轭转置
A=s
标量s赋给A的每个元素
s+B
标量s分别与B的元素之和
s-B,B-s
标量s分别与B的元素之差
s.*A
标量s分别与A的元素之积
s*A
标量s与A的每个元素相乘
s./B
s分别被B的元素除
s*inv(B)
B的逆乘s
A.^n
A的每个元素自乘n次(整数)
A^n
方阵A自乘n次
A.^p
对A的各元素分别求p次幂
A^p
方阵A的非整数幂
p.^A
以p为底,分别以A的元素为指数求幂
A+B
对应元素相加
A+B
矩阵相加
A-B
对应元素相减
A-B
矩阵相减
A.*B
对应元素相乘
A*B
矩阵相乘
A./B
A的对应元素被B的相除
A/B
A右除B
exp(A)
以e为底,分别以A的元素为指数求幂
log(A)
对A的各元素求对数
sqrt(A)
对A的各元素求平方根
f(A)
求A各元素的函数值
A#B
A、B阵对应元素间的关系运算,#表示关系运算符
A@B
A、B阵对应元素间的逻辑运算,#表示逻辑运算符
例:
两种不同转置的比较
clear;A=zeros(2,3);
A(:
)=1:
6;
A=A*(1+i)
A_A=A.'
A_M=A'
A=
1.0000+1.0000i3.0000+3.0000i5.0000+5.0000i
2.0000+2.0000i4.0000+4.0000i6.0000+6.0000i
A_A=
1.0000+1.0000i2.0000+2.0000i
3.0000+3.0000i4.0000+4.0000i
5.0000+5.0000i6.0000+6.0000i
A_M=
1.0000-1.0000i2.0000-2.0000i
3.0000-3.0000i4.0000-4.0000i
5.0000-5.0000i6.0000-6.0000i
作业和思考题:
思考题:
1、创建数组,?
2、单下标和双下标有何区别?
课后小结:
数组的创建和元素的访问,单下标和双下标。
Matlab数据处理与分析课程教案
授课题目:
第三章字符串
教学目的、要求:
掌握:
Matlab中的字符串使用。
教学重点及难点:
重点:
字符串的使用,声明,与处理函数。
难点:
符串的使用,声明,与处理函数。
课时安排:
4
教学基本内容(以例题为主,运行并演示例题程序):
一、字符串数组
字符串入门举例
例:
先请读者实际操作本例,以体会数值量与字符串的区别。
clear
a=12345.6789
class(a)
a_s=size(a)
a=
1.2346e+004
ans=
double
a_s=
11
b='S'
class(b)
b_s=size(b)
b=
S
ans=
char
b_s=
11
whos
NameSizeBytesClass
a1x18doublearray
a_s1x216doublearray
ans1x48chararray
b1x12chararray
b_s1x216doublearray
Grandtotalis10elementsusing50bytes
串数组的属性和标识
例:
本例演示:
串的基本属性、标识和简单操作。
(1)
a='Thisisanexample.'
a=
Thisisanexample.
(2)
size(a)
ans=
119
(3)
a14=a(1:
4)
ra=a(end:
-1:
1)
a14=
This
ra=
.elpmaxenasisihT
(4)
ascii_a=double(a)
ascii_a=
Columns1through12
8410410511532105115329711032101
Columns13through19
1209710911210810146
char(ascii_a)
ans=
Thisisanexample.
(5)
w=find(a>='a'&a<='z');
ascii_a(w)=ascii_a(w)-32;
char(ascii_a)
ans=
THISISANEXAMPLE.
(6)
A='这是一个算例。
';
A_s=size(A)
A56=A([56])
ASCII_A=double(A)
A_s=
17
A56=
算例
ASCII_A=
Columns1through6
547545191153947473505219549405
Column7
41379
char(ASCII_A)
ans=
这是一个算例。
(7)
b='Example''3.1.2-1'''
b=
Example'3.1.2-1'
(8)
ab=[a(1:
7),'',b,'.']
ab=
ThisisExample'3.1.2-1'.
复杂串数组的创建
多行串数组的直接创建
例:
多行串数组的直接输入示例。
clear
S=['Thisstringarray'
'hasmultiplerows.']
S=
Thisstringarray
hasmultiplerows.
size(S)
ans=
218
利用串操作函数创建多行串数组
例演示:
用专门函数char,str2mat,strvcat创建多行串数组示例。
S1=char('Thisstringarray','hastworows.')
S1=
Thisstringarray
hastworows.
S2=str2mat('这','字符','串数组','','由4行组成')
S2=
这
字符
串数组
由4行组成
S3=strvcat('这','字符','串数组','','由4行组成')
S3=
这
字符
串数组
由4行组成
size(S3)
ans=
55
转换函数产生数码字符串
例:
最常用的数组/字符串转换函数int2str,num2str,mat2str示例。
(1)
A=eye(2,4);
A_str1=int2str(A)
A_str1=
1000
0100
(2)
rand('state',0)
B=rand(2,4);
B3=num2str(B,3)
B3=
0.950.6070.8910.456
0.2310.4860.7620.0185
(3)
B_str=mat2str(B,4)
B_str=
[0.95010.60680.89130.4565;0.23110.4860.76210.0185]
Expression=['exp(-',B_str,')'];
eval(Expression)
ans=
0.38670.54510.41010.6335
0.79370.61510.46670.9817
例:
综合例题:
在MATLAB计算生成的图形上标出图名和最大值点坐标。
clear
a=2;
w=3;
t=0:
0.01:
10;
y=exp(-a*t).*sin(w*t);
[y_max,i_max]=max(y);
t_text=['t=',num2str(t(i_max))];%<7>
y_text=['y=',num2str(y_max)];%<8>
max_text=char('maximum',t_text,y_text);%<9>
%
tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)'];%<11>
plot(t,zeros(size(t)),'k')
holdon
plot(t,y,'b')
plot(t(i_max),y_max,'r.','MarkerSize',20)
text(t(i_max)+0.3,y_max+0.05,max_text)%<16>
title(tit),xlabel('t'),ylabel('y'),holdoff
图1
利用元胞数组创建复杂字符串
例:
元胞数组在存放和操作字符串上的应用。
a='MATLAB6.x';b='includesnewdatatypes:
';
c1='◆Multidimensionalarray';c2='◆User-definabledatastructure';
c3='◆Cellarrays';c4='◆Characterarray';
c5='◆Functionhandle';
c=char(c1,c2,c3,c4,c5);
C={a;b;c};%<5>
disp([C{1:
2}])%<6>
disp('')%
disp(C{3})%<8>
MATLAB6.xincludesnewdatatypes:
◆Multidimensionalarray
◆User-definabledatastructure
◆Cellarrays
◆Characterarray
◆Functionhandle
串转换函数
例:
fprintf,sprintf,sscanf的用法示例。
rand('state',0);a=rand(2,2);
s1=num2str(a)
s_s=sprintf('%.10e\n',a)
s1=
0.950130.60684
0.231140.48598
s_s=
9.5012928515e-001
2.3113851357e-001
6.0684258354e-001
4.8598246871e-001
fprintf('%.5g\\',a)
0.95013\0.23114\0.60684\0.48598\
s_sscan=sscanf(s_s,'%f',[3,2])
s_sscan=
0.95010.4860
0.23110
0.60680
作业和思考题:
思考题:
1、比较字符与字符串有何差别与相同之处?
2、如何使用字符串?
课后小结:
字符串、与字符串处理函数。
Matlab数据处理与分析课程教案
授课题目:
第四章数值计算
教学目的、要求:
了解:
数值计算的概念与必要性,条件数。
掌握:
特征值的计算,函数导数、切面,法线的计算及三维显示。
教学重点及难点:
重点:
特征值的计算,函数导数、切面,法线的计算及三维显示。
难点:
特征值的计算,函数导数、切面,法线的计算及三维显示。
课时安排:
4
教学基本内容(图例说明,运行并演示例题程序):
一、引言
本章的讨论重点是:
如何利用现有的世界顶级数值计算资源MATLAB。
对于熟悉其他高级语言(如C++)的读者来说,通过本章,MATLAB卓越的数组处理能力、浩瀚而灵活的M函数指令、丰富而友善的图形显示指令将使他们体验到解题视野的豁然开朗,感受到摆脱烦琐编程后的舒爽。
对于那些经过大学基本数学教程的读者来说,通过本章,MATLAB精良完善的计算指令,自然易读的程序将使他们感悟“教程”数学的基础地位和局限性,看到从“理想化”简单算例通向科学研究和工程设计实际问题的一条途径。
本章内容包括矩阵分析、线性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 数据处理 分析 课程 教案
![提示](https://static.bdocx.com/images/bang_tan.gif)