Matlab学习笔记.docx

上传人:小飞机 文档编号:3161235 上传时间:2023-03-11 格式:DOCX 页数:19 大小:43.29KB
返回 下载 相关 举报
Matlab学习笔记.docx_第1页
第1页 / 共19页
Matlab学习笔记.docx_第2页
第2页 / 共19页
Matlab学习笔记.docx_第3页
第3页 / 共19页
Matlab学习笔记.docx_第4页
第4页 / 共19页
Matlab学习笔记.docx_第5页
第5页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Matlab学习笔记.docx》由会员分享,可在线阅读,更多相关《Matlab学习笔记.docx(19页珍藏版)》请在三一办公上搜索。

1、Matlab学习笔记 Matlab学习笔记 王正盛 国防工业出版社 MATLAB与科学计算 一.MATLAB入门 . 4 who、whos和永久变量 . 4 显示格式 . 4 图形 . 4 二.MATLAB数值计算 . 5 1.常用命令: . 5 2.矩阵的保存和获取 . 5 3.矩阵的运算和数组的运算 . 5 4.线性方程组 . 5 5.多项式 . 6 6.数值积分 . 6 7.一般非线性方程组求解 . 6 8.微分方程的数值求解 . 7 三MATLAB的符号计算 . 7 1.符号变量和符号表达式 . 7 2.微积分运算 . 7 3.解方程 . 8 4.化简和代换 . 8 5.MATLAB的

2、符号表达式命令 . 8 四.MATLAB的图形和可视化 . 9 1.二维图形 . 9 2图形标记 . 9 3.特殊坐标和图形 . 9 4.其他命令 . 9 5.填充命令 . 10 6.三维图形 . 10 7.符号绘图 . 10 8.其他 . 10 五.MATLAB程序设计 . 10 1.概述: . 10 2.命令文件 . 11 3.程序文件 . 11 六.MATLAB图形用户界面设计 . 11 七.基于MATLAB的大规模矩阵计算 . 11 1.稀疏矩阵 . 11 八.基于MATLAB的最优化问题求解 . 12 1.线性规划问题 . 12 2.非线性问题 . 12 1 3.二次规划问题 . 1

3、2 九.基于MATLAB的数据插值和拟合 . 12 1.一维数据插值 . 12 2.二维数据插值 . 13 3.曲线拟合 . 13 十.基于MATLAB的图像处理初步 . 13 1.图像分类 . 13 2.图像的读取和显示 . 13 2 3 一.MATLAB入门 who、whos和永久变量 who 变量名 %检查内存变量。 Whos %检查驻留变量的详细情况。 MATLAB自定义的永久变量: eps %计算机中的最小正数 inf %无穷大 pi %圆周率 NaN %不定量 flops %浮点运算次数 i,j%虚数单位 显示格式 MATLAB中以短格式显示计算结果,可以用format命令改变数字

4、显示格式 1. 变量的存储和调用 1) 存储当前工作空间中的变量 Save %将所有的变量存入文件MATLAB.mat中 Save mydate %将所有变量存入指定文件 Save mydate x y z %将指定的变量存入指定的文件中 2) 将数据文件的变量载入当前的工作空间 将save换作load即可 图形 1 二维图形绘制命令 Plot; 2.三维图形绘制命令 Mesh; 2. 用户目录的建立 在命令窗口输入:cd c:mydir 4 二.MATLAB数值计算 1.常用命令: Reshape命令 X=1:1:6; %产生6个元素的行向量 Reshape(x,2,3); %利用X行向量产

5、生一个2*3的向量 diag命令: ar=rand(4,4) %产生一个4*4的0-1均匀随机向量 d=diag %用ar的主对角元形成向量d D=diag%利用d构成对角矩阵D Size:获取矩阵的行数和列数 2.矩阵的保存和获取 1)利用m文件 利用文件编辑器编辑矩阵AM=1 2 3;4 5 6;7 8 9保存为在自己的目录下名的matrix.m在MATLAB命令窗口中只要输入matrix就可以调用AM矩阵 2)通过mat文件 Mat文件是MATLAB中保存数据的一种标准格式二进制文件,通过save和load执行,如前所述 3) 利用外部数据文件装入到指定矩阵中 假如磁盘中已有名为c:my

6、dirdate.dat的二进制数据文件,利用load c:mydirdate.dat命令可以在MATLAB工作空间中产生一个名为date的矩阵 3.矩阵的运算和数组的运算 矩阵运算是按矩阵的运算法则进行的;数组运算无论何种操作都是对元素逐个进行的,数组运算需要在运算符前加点号。 4.线性方程组 1)采用求逆运算:x=inv*b; 2)采用左除运算:x=Ab; 说明:只有在A是方阵时可以采用求逆运算;求逆运算没有左除运算好;一般都用左除运算吧 5 在解欠定方程时,解得结果是所有结果中范最小的一个 5.多项式 1. 多项式的创建 1) 多项式系数向量直接输入法 2) 利用指令:p=poly;AR为

7、多项式的根或者特征多项式 常用多项式的运算指令: R=roots%求多项式的根 PA=polyval%按数组运算规则计算多项式值。P是多项式,S为矩阵 PA=polyvalm%按向量运算规则计算多项式值。 r,p,k=residue(b,a)%部分分式展开。b,a分别是分子,分母多项式的系数向量。 R,p,k分别是留数、极点、直项向量。 P=polyfit(x,y,n)%用n阶多项式拟合x,y向量给定的数据。 6.数值积分 S=quad(fname,j积分下限,积分上限,tol,trace) %trace为1用图形展示积分过程,精确度缺省时取0.001 S=quad8 7.一般非线性方程组求解

8、 1) 单变量非线性方程求解 先建立方程fname.m文件调用fzero求解 Z=fzero(fname,x0,tol,trace)%x0为起始搜索点,一个函数可能有多个根,但结果只取离x0最近的根 2)求解非线性方程组 先建立方程组的m文件调用fsolve函数求解 X=fsolve(fname,x0) %x0是对解的猜测值 function q=myxyz(p) x=p(1);y=p(2);z=p(3); q(1)=sin(x)+y2+log(z)-7; q(2)=3*x+2*y-z3+1; 6 q(3)=x+y+z-5; 调用 x=fsolve(myxyz,1 1 1) 8.微分方程的数值

9、求解 t,x=ode23(fnanme,to,tf,x0,tol,trace) t,x=ode45(fnanme,to,tf,x0,tol,trace) 先建立微分方程fname.m文件调用ode23或ode45函数。 function yp=funt(t,y) yp=(y2-t-2)/4/(t+1); 调用 t,y=ode23(funt,0,10,2) 注:该指令是针对一阶微分方程设计的。因此对于高阶微分方程,必须演化成形如x=f(x,t)的一阶微分方程。 三MATLAB的符号计算 1.符号变量和符号表达式 sym x %定义一个符号变量 findsym%确认符号表达式中的符号变量 syms

10、 x,y,z %定义一组符号变量 注:事实上,sym和syms在定义符号变量时除了个数的差别外,还有定义的结果也不同,注意在MATLAB中体会。 f=sym(1+sin(x) subs%用新的符号变量代替旧的符号变量,可以是一个变量也可以是一个数组。 2.微积分运算 1)微分 diff(f,t,n) %函数f对t求导,如果t缺省,则字符表上最接近x的符号变量求导;n表示求导次数 7 2)积分 int(f,t,t0,tf) %函数f对x在t0到tf上求积分 3)求极限 limit(f,t,a,left或者right) %当t趋于a时,f的极限,当a缺省时,a为0,left或者right 表示左右

11、极限。 4)求级数和 symsum(s,t,a,b) %t从a到b时s的级数和 5)求泰勒级数 taylor%函数f对符号变量x在a点附近的泰勒级数,a缺省时为0,详见help。 命令栏输入taylortool可以调用泰勒图形展开界面。 3.解方程 1)代数方程 solve(f,t) %解代数方程f=0 或者solve(f(x)=g(x)) 也可以利用solve解方程组,详见help 2)解微分方程 dsolve %s1、s2、时初始条件 3)线性代数 MATLAB中大多数用于数值线性代数的计算命令,都可以用于符号变量线性代数运算 4.化简和代换 collect%合并同类项 expand%将乘

12、积形式化为和式 simplify%利用恒等式化简 hornor %将多项式化为嵌套式 此外还有simple 5.三种变换: 傅立叶变换fourier(f,trans_var,eval_point) 反变换:ifourier 拉普拉斯变换laplace(f,trans_var,eval_point) 反变换:ilaplace z变换ztrans(f,trans_index,eval_point) 反变换:iztrans 5.MATLAB的符号表达式命令 help symbolic 8 四.MATLAB的图形和可视化 1.二维图形 plot %最简单最常用的二维绘图命令 fplot(fname,l

13、ims,tol) %自适应二维函数绘图命令,在函数变化率大的部分密集采样绘图,提高图形真实性。 2图形标记 title(图形名称) %给图形命名 xlabel(x轴坐标) ylabel text(x,y,标记) %在坐标点处加标记 legend axis axis(on) %显示坐标 axis(off) 另外绘图命令中还可以对图形的坐标,颜色,线型进行设定,详见help 3.特殊坐标和图形 loglog%双对数坐标 semilogy(x,y) %以x轴为对数坐标 polar(theta,rho) %极坐标 stair(x,y) %阶梯图形 bar(x,y) %条形图 stem%火柴杆状图 pi

14、e%绘制饼状图 pie3%绘制三维饼状图 ribbon%绘制带状图,c是颜色 4.其他命令 subplot(a,b,n) %将绘图区分为a*b区,选择其中的n区 hold %在原来视图中绘图 plotyy%在同一坐标系中左右使用不同的坐标 9 5.填充命令 fill(x1,y1,x2,y2,c) %用c颜色填充由(x1,y1)、(x2,y2)确定的多边形 erea %用r色填充由x,y函数确定边界的区域 6.三维图形 1)绘图命令 plot3(x,y,z) %最基本的三维图形函数,函数除了增加第三维坐标外,功能和plot相同 mesh(x,y,z) %绘制三维网格图。在不需要特别精细的三维曲面

15、结果时使用。 surf(x,y,z) %绘制三维曲面图,各线条之间的补面用颜色填充 2)视点 view或者view(x,y,z) %x,y,z观察点坐标 3)等高线 contour %以z为高程值,x,y为横纵坐标的平面等值线图,n缺省值为10 contour3(x,y,z,n) %三维等值线图 meshc %绘制带等值线图的网线图 其他相关的还有pcolor、meshz、surfc等,详见help。 7.符号绘图 ezplot%二维符号绘图 ezplot3 %三维符号绘图 ezmesh、ezsurf%三维符号绘图 8.其他 1)球面绘图 sphere(n) %绘制单位球面,且球面上的网格线条

16、数为n cylinder(r,n) %轴线定位z轴r表示柱面的母线,是向量;n表示柱面上网格线条数 五.MATLAB程序设计 1.概述: 1)MATLAB有两种工作方式:一种是交互式的命令行工作方式;一种是m文件的程序工作方式。 2)m文件有两种:一种是命令文件,相当于将命令行的命令先集中写好存在m文件中;一种是函数文件。 10 2.命令文件 1)数据的输入输出 result = input(prompt) %提示输入一个量 disp(X) % isplay text or array pause%暂停n秒,n缺省时暂停至敲任意键结束。 3.程序文件 function 输出形参表=fname

17、函数体 MATLAB中的程序设计同样着重掌握if语句,while语句,for语句和switch语句等,同时MATLAB中没有花括弧,每一条if或者while语句都需要用end结束。 六.MATLAB图形用户界面设计 太难,暂时跳过 七.基于MATLAB的大规模矩阵计算 1.稀疏矩阵 表 MATLAB提供的创建稀疏矩阵函数表 sparse converts a full matrix to sparse S = sparse(A) form by squeezing out any S = sparse(i,j,s,m,n) zero elements. extracts all nonzero

18、 diagonals B = spdiags(A,d) from the m-by-n matrix A. A = spdiags(B,d,m,n) A = spdiags(B,d,A) converts a matrix D with rows S = spconvert(D) containing i,j,s or i,j,r,s to the corresponding sparse matrix. locates all nonzero elements of ind = find(X) array X, and returns the ind = find(X, k) linear

19、indices of those row,col,v = find(X, .) elements in vector ind orm an m-by-n sparse matrix S = speye(m,n) 11 spdiags spconvert find speye with 1s on the main diagonal full converts a sparse matrix S to A = full(S) full storage organization 八.基于MATLAB的最优化问题求解 1.线性规划问题 x = linprog(f,A,b,Aeq,beq,lb,ub,

20、x0,options) %求解线性规划问题,注意f为列向量 2.非线性问题 1)有约束一元函数 x = fminbnd(fun,x1,x2,options) %x1,x2是取值范围 2)无约束多元函数 x = fminsearch(fun,x0,options) %x0是初始值向量 x = fminunc(fun,x0,options) 注:当函数结束大于2时,使用fminnuc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好 3)有约束多元函数 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) %nonlcon

21、通过指定函数柄来使用非线性约束,如:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,mycon) %mycon是定义好的非线性等式和不等式约束,缺省时用代替。 3.二次规划问题 x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) % This MATLAB function returns a vector x that minimizes 1/2*x*H*x + f*x. 九.基于MATLAB的数据插值和拟合 1.一维数据插值 1)vq = interp1(x,v,xq,method) %x、v是数据值,xq是要求点,method是具体算法

22、 method有四种:linear分段线性插值,缺省值 cubic分段三次多项式插值 12 spline三次样条插值,即在每个分段区间内构造一个三次多项式,使其插值函数满足插值条件,还要求在各个节点出具有光滑的条件 nearest最邻近区域插值 2)三次样条插值 yy = spline(x,Y,xx) pp = spline(x,Y) %调用结果用yyi=ppvsl 2.二维数据插值 1)插值基点为网格节点 Vq = interp2(X,Y,V,Xq,Yq,method) %二维数据插值,用法和二维数据插值相同,method缺省值为linear 2)插值基点为散乱节点 vq = griddat

23、a(x,y,v,xq,yq,method) 3.曲线拟合 P=polyfit %用n阶多项式拟合x,y向量给定的数据; PA=polyval %求xi点上的拟合函数近似值 十.基于MATLAB的图像处理初步 1.图像分类 1)索引图像:图像信息包含一个数据矩阵X和一个颜色印象矩阵MAP,MAP矩阵的每一行分别表示红绿蓝的颜色值,MATLAB中,索引图像是从像素值到颜色印象表值得“直接映射” 2)灰度图像:一副灰度图像是一个数据矩阵I,其中I中的数据均代表了在一定范围中的颜色灰度值。MATLAB中把灰度图像存储在一个数据矩阵,该数据矩阵中的元素分别代表了图像中的像素。 3)RGB图像:即真彩图像

24、,在MATLAB中存储为n*m*3的数据矩阵。数组中的元素定义了图像中每一个像素的红绿蓝的颜色值。 4)二值图像:与灰度图像相同,二值图像只需要一个数据矩阵,每个像素只取两灰度值。 2.图像的读取和显示 info=imfinfo%获取图像信息 A = imread(filename, 文件格式) X, map = imread(.) %二维图像读取,如索引图像 imwrite(A,filename) %writes image data A to the file specified by filename 13 imshow 文件名.格式 %显示图像 image%显示图像 3.图像格式之间的转换 详见help。 14

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号