(视频)MATLAB基础教程完_第1页
(视频)MATLAB基础教程完_第2页
(视频)MATLAB基础教程完_第3页
(视频)MATLAB基础教程完_第4页
(视频)MATLAB基础教程完_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB基础教程(B站) 1、MATLAB系统环境 (1)MATLAB(MATrix LABoratory) 雏形:CleveMoler教授为学生编写的用于Linspack和Eispack的接口程序。 首版:DOS版(1.0) 发展:4.0版(具有微机版)、5.0版(系统的编程语言) 最新:R2018a (2)MATLAB用途:数值和符号计算、绘图、一种语言体系、工具箱(功能性、学科性) (3)MATLAB安装、启动和设置 MATLAB设置:主要为路径设置 MATLAB设置几个主要函数: 用path显示文件路径、用help查看某个函数作用、用cd返回当前工作目录、用userpath改变MA

2、TLAB的打开路径(如userpath(“d/MATLAB/work”))、用pathtool修改MATLAB的搜索路径 2、MATLAB的数据操作及语法 (1)变量和语句: <1>变量命名: 字母开头,包括字母、数字、下划线,区分大小写 不声明、不定义,拿来即用 <2>语句: 回车则表示一句结束,末尾无分号,则输出该语句执行结果,末尾有分号,只执行,不输出 注释以%开头表示 一行写不开,用.续行,否则默认这一行已经完毕 <3>赋值 变量=表达式 表达式 前者将表达式的值赋值给=前面的变量,后者将表达式的值赋值给默认的结果变量ans (2)变量管理: <

3、;1>工作空间中驻留的变量查看 工作空间窗口显示 命令方式,who、whos <2>清除变量 clear命令 <3>保存数据 save命令:将MATLAB中工作空间中变量保存到 使用语法:save 文件名变量名-append-ascii (3)数据输出 <1>数据输出格式控制 format函数 只影响数据输出格式,不影响计算和存储默认输出格式为short格式 (3)MATLAB数据类型 <1>数值型:双精度、单精度、带符号和无符号整型 建立方法: a=1,建立double型数据a,值为1 b=uint8(a),a转化为uint8类型(无符号

4、整型8位)赋值到b中,执行结果a类型不变 a=uint(a),a转化为uint8类型 a=double(a),a转化为双精度类型 注意:使用class查看某一变量的数据类型 <2>字符串 建立方法: 使用单撇号括起来的字符序列,如str='This is a string' 字符串操作: 获取字符ASCII码值:double函数或者abs函数,如double(a)输出字符a的ASCII码 ASCII转化为字符输出:char函数,如char(63)输出ASCII码63代表的字符 执行字符串内容:eval函数,如eval(t=1')将字符串t=1'作为M

5、ATLAB语句执行,结果为将1赋值给变量t 字符串与数值的互换:str2num函数和num2str函数 <3>结构体 建立方法: 结构体.成员名=表达式 如a.x1=1,a.x2=str',a.x3=11 12 13,建立了结构体a,成员有三个 结构体操作: isstruct函数(判断一个变量是否为结构体)、fieldnames函数(返回结构体所有成员)、isfiled函数(判断变量是否为结构体成员名)、rmfield函数(删除结构体成员)、getfield函数(获取某个成员) <4>单元 建立方法:使用括起来 a=1,str',11 12 13 14;

6、 <5>多维矩阵 <6>稀疏矩阵 3、MATLAB矩阵操作 数据类型在MATLAB中都是以矩阵形式存在,矩阵是MATLAB最基本的数据对象。 (1)矩阵的建立 <1>直接输入法 在命令窗口直接输入矩阵元素 按行输入矩阵元素,同一行元素使用空格或逗号隔开,不同行元素使用分号或者回车作为间隔,如A=1 2 3或A=1,2,3,4或A=1 2 3;4 5 6 <2>使用M文件建立矩阵 启动编辑器(输入edit命令,或者使用按钮) 输入待建立矩阵,输入格式要求和直接输入法类似(2)特殊矩阵建立 <1>使用zeros函数建立0矩阵,如:zero

7、s(3,4)建立3行4列的0矩阵 <2>使用ones函数建立1矩阵,如ones(2,3) (3)冒号表达式建立行向量 语法e1:e2:e3,e1为初始值,e2为步长,e3为终止值,产生行向量,以e1为开始,e3为结束,步长为e2,如A=1:2:5 (4)使用linspace建立行向量 linspace(a,b,n),a和b分别为行向量的第一个和最后一个元素,n为总元素,省略n自动产生100个元素的行向量,如linsapce(1,5,3) (2)矩阵的简单操作 <1>索引矩阵 MATLAB矩阵在存储空间中是按列存放的。 可以使用矩阵元素的行标和列标或者矩阵元素的位置索引来

8、索引矩阵元素 行标和列标共同使用的形式,如A(2,3) 使用序号索引,涉及到MATLAB中矩阵的存储形式,A(5) 序号和下标的转换 <2>重排矩阵 使用reshape函数或:重排矩阵,如:B=reshape(A,9,1)或C=A(:) <3>矩阵转置 B=A' <4>矩阵拆分 使用冒号表达式拆分矩阵 B=A(1,1:2);表示返回矩阵A第一行中第一列到第二列 C=A(1,1:end-1);表示返回矩阵A第一行中第一列到倒数第一列 D=A(1,2,1,2);返回A矩阵中A11、A12、A21、A22 <5>删除矩阵元素 A(2)= <

9、;6>其他操作 扩展,Q=repmat(A,2,1)复制矩阵 压缩,R=1 2 3 3 3 4 4,S=unique(R)得到S=1 2 3 4 4、MATLAB的矩阵处理 (1)特殊矩阵建立 <1>0矩阵 <2>1矩阵 <3>单位矩阵,使用eye函数,如A=eye(10,10) <4>随机矩阵,使用rand或randn函数,如A=rand(10,1) 产生从a到b之间均匀分布的随机数A=a+(b-a)*rand 产生均值为u,方差为s的正态分布的随机矩阵 y=u+sqrt(s)*randn <5>魔方矩阵 magic(5) &

10、lt;6>Hilbert矩阵和Toeplitz矩阵 toeplitz(1:6) 和hilb(4)(2)矩阵和向量运算 MATLAB运算以矩阵为单位,可以实现加法、数乘等运算以及行列式、秩、逆或转置等 A=1 0 0 0;3 1 0 0;-5 2 1 0; 7 -3 2 1 B=1 2 3 4; 2 3 4 5;3 4 5 6;4 5 6 7 A+B k*A A' <1>det函数计算矩阵的行列式,det(A) <2>inv函数计算矩阵的逆矩阵,inv(A) <3>向量的内积运算:向量a和b的内积为(a,b)=b'*a,或dot(b,a)

11、 (3)线性方程组求解 可以使用矩阵求逆的方法求解线性方程组 如:系数矩阵A=1,2,3;1,4,9;1,8,27,B=5,-2,6',X=inv(A)*B (4)矩阵相似化简和分解 <1>求解Jordan标准型 使用Jordan函数,如A=1,2,3;1,4,9;1,8,27,jordan(A)得出结果 <2>求解矩阵特征值 使用eig函数,如A=1,2,i;1,4,9;i,8,27,eig(A)得出特征值 (5)矩阵和向量的范数 范数运算,包括1范数,2范数和无穷范数以及f范数,使用norm函数 Norm(A,1)、norm(A,2)、norm(A,inf)

12、、norm(A,'fro') (6)矩阵分析 <1>函数矩阵 计算函数矩阵A(x)的一阶和二阶导数,使用diff函数 A=sin(x) exp(x) 1;cos(x) x*x+1 log(x); diff(A)或diff(A,2) <2>矩阵函数 使用funm函数计算矩阵函数 A=0 1;0 -2; expA=funm(A,exp) sinA=funm(A,sin) 5、MATLAB程序控制结构 (1)M文件 <1>命令文件(脚本文件,Script File),命令文件没有输入,没有返回;可以对工作空间的变量操作,结果返回工作空间;命令文件可

13、以直接运行 <2>函数文件(Function File),函数文件中变量为局部变量,函数执行完毕,变量被清除;函数文件需要调用形式运行(除了特殊的) <3>建立和打开 使用edit函数建立M文件,或File->M File (2)顺序结构 按照代码顺序执行,即顺序结构。 顺序结构中的输入输出数据输入:input函数,如a=input(input a') 数据显示:disp函数,如disp(This is a apple') 程序暂停:pause函数,如pause(1)暂停1秒 (3)选择结构 包括if分支、switch分支和try分支 <1&

14、gt;if分支: 单分支if语句:如A=input(input A') if A>10 disp(A) end 双分支if语句:如x=input(x'); if x>10 y=log(x); else y= cos(x); end 多分支if语句: 如c=input(input a character','s'); if c>='A'&c<='Z' disp(char(abs(c)+abs(a')-abs(A') elseif c>='a'&c&

15、lt;='z' disp(char(abs(c)-abs(a')+abs(A') end <2>switch分支 相比与C语言没有break语句,default换成了otherwise price=input(input price'); switch fix(price/100) case 0,1 rate=0; case 2,3,4 rate=.03; otherwise rate=.1; end <3>try分支: 试探性的分支语句,也就是如果这条语句执行有错误,则不执行,或执行其他语句,提高程序的容错率。 try 语句1

16、catch 语句2 end (4)循环结构 包括for循环和while循环 <1>for循环 语法: for循环变量=表达式1:表达式2:表达式3 循环体 end 注意:循环变量自动增加,不能对循环变量赋值,且不要使用i或j作为循环变量。循环执行效率低,所以避免使用多层循环。 如:A=1:100; sumA=0; for k=1:100 sumA=sumA+A(k); end <2>while循环 语法: while条件 循环体 end 如: while 1 c=input(input a character','s') if isempty(a

17、bs(c) break; end end 6、MATLAB的编辑器和程序调试 (1)M文件:同前 (2)脚本文件(命令文件) (3)函数文件 <1>基本结构: function输出形参=函数名(输入参数) 注释 函数体; <2>函数文件名 通常和函数名一致,如果不一致,那么忽略函数名,调用时使用函数文件名 如:新建M文件,为函数文件,命名为add_my,文件中写入 function re=add_my(a,b) %完成变量a和b相加 % 输入:a和b % 输出:re为输入两个参数的相加 % Auhor:zhangwie re=a+b; <3>函数参数可调标识

18、变量 主要有4个:nargin、nargout、varargin、varargout 1)function re=add_multi(a,b,c,d) if nargin=4 re=a+b+c; elseif nargin re=a+b+c+d; else error(wrong') end 2)function a,b=add_mu(c,d,e,f) if nargout=2 a=c+d+e+f; b=c+d+e+f; else a=c+d+e+f; end 3)function re=add_var(a,b,varargin) if nargin=2 re=a+b; elseif

19、nargin=3 c=varargin1; re=a+b+c; else error(wrong') end <4>全局变量 使用global声明,可以提供给不同的M文件访问同一个变量。 (4)程序调试 断点和单步 K>> 代表调试状态 7、MATLAB绘图功能(1)-二维高层绘图操作 (1)二维高层绘图基本函数 plot函数 <1>基本用法:plot(x,y); 要求:x和y要是对应的 <2>特殊用法: 确定曲线颜色; x为实数向量,则绘制折线图,若x为复数向量,则以实部和虚部为横纵坐标绘图 如: 1)x=0:0.01:2*pi y=s

20、in(x); plot(x,y) %绘制了一个正弦函数 2)y1=sin(x); y2=cos(x); y3=0.002*exp(x); y4=x; y5=0.002*tan(x); z=y1;y2;y3;y4;y5; plot(x,z); % 绘制了5条曲线 3)plot只有一个参数 x=linspace(0,2*pi,200); y=sin(x); plot(y); 4)plot有多个参数 x1=linspace(0,2*pi,200); x2=linspace(0,2*pi,100); y1=cos(x1); y2=sin(x2); plot(x1,y1,x2,y2) 5)plot曲线颜

21、色 x=linspace(0,2*pi,200); y=sin(x); plot(x,y,'r'); %绘制了一条红色正弦函数,r红色、k黑色、g绿色、y黄色 (2)二维绘图的辅助操作 <1>标注 x=linspace(0,2*pi,200); y=sin(x); plot(x,y); title(正弦函数'); 文本标注) %'y=sin(x)'text(2,0.3,legend(cos','sin') %图例标注 <2>坐标轴控制 axise qual、axis square、axis、xlim、vli

22、m <3>图像保持 hold on hold off <4>窗口分割 x=0:0.1:2*pi y1=sin(x); y2=cos(x); y3=tan(x); y4=exp(x); subplot(2,2,1) plot(x,y1) subplot(2,2,2) plot(x,y2) subplot(223) plot(x,y3) subplot(224) plot(x,y4) %分割了4个部分分别画了四个图 8、MATLAB绘图功能(2)-二维底层绘图修饰 (1)对象和句柄 MATLAB把构成图形的各个基本要素称为图像对象,产生每一个图形对象时,MATLAB会自动分

23、配一个唯一的值用于表示这个对象,称为句柄。 (2)对象间的基本关系 计算机屏幕->图形窗口->(用户菜单、用户控件、坐标轴) 坐标轴->(曲线、曲面、文字、图像、光源、区域、方框) (3)基本底层绘图函数 <1>line对象和line函数 h=line(-pi:0.01:pi,sin(-pi:0.01:pi) %同plot函数,h为句柄 <2>line对象修饰 Color、Linewidth、LineStyle、Marker、MarkerSize h1=line(XData', -pi:0.01:pi,'YData', sin(

24、-pi:0.01:pi),.LineWidth',1,LineStyle',:'Color',r' ); set(h1,'LineWidth',2,Marker',p''MarkerSize'15') (4)底层标注 text函数 ht=text(0,0,'sin'); set(ht',String'cos'); (5)底层坐标轴控制 axes函数,属性Box、GridLineStyle、Position、Units、Xlabel、Ylabel、Zlabel 9、MATLAB Notebook使用简介 (1)Notebook安装和启动 电脑要有word才能安装Notebook 命令:notebook setup 启动: <1>输入notebook启动 <2>在word中建立M-book文档即可 中命令运行M-book)2( (3)定义自动初始化单元 选择“Define Autoinit Cell”设置 (4)单元组定义 选择“Group Cells”设置 10、MATLAB符号运算 (1)符号计算基础 <1>符号常量和符号变量 符号变量:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论