MATLAB课件第四章20140415

合集下载

第四章 MATLAB课件(2)

第四章 MATLAB课件(2)

部函数(Build—in Functions)创建。

figure创建图形窗口
调用格式: h=figure(n) n为窗口序号
例:创建1号窗口,返回句柄。 h=figure(1) h= 1 返回值为窗口号数

axes 创建轴对象
h=axes( ‘position’, [left, bottom, width, height] ) 定义轴对象的位置与大小 line 创建线对象 h=line( x, y, z) 如果不指定z, 则在x, y平面上 划线。
界面控制(Uicontrol):图形窗口的子代,独立于轴。创建用户界面 控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。 界面菜单(Uimenu): 图形窗口的子代,独立于轴。创建用户界面菜 单对象,允许用户在图形窗口的上方建立菜单。
窗口对象
1 0.8 0.6 0.4 0.2 0
轴对象
>>lin2=line(sin(20*x),cos(20*x),’LineStyle’,’:’,’Color’,’b’) %用0.5号细虚蓝线画弦。此线句柄存放于lin2。 fig = 1 ax = 0.0013 lin1 = 157.0011 lin2 = 157.0012
例:创建三维网线图时设置对象品性 >> fig_2=figure; >> ax=axes('Box','on','View',[-37.5,30],'Nextplot','replace'); >> [x,y,z]=peaks(25); >> surfh=surface(x,y,z,'Facecolor','w','LineWidth',2,'Edgecolor','k'); 说明:由于在设置中 “Facecolor”设为“w”,这实 际上是高层指令mesh所画 的网线图。此图的网线比 较租。

matlab编程基础与工程应用第四章PPT课件

matlab编程基础与工程应用第四章PPT课件

clear;clc;
%直接赋值法一:生成元胞数组
a(1,1)={[1 3 6;4 7 9;2 5 8]};
a(1,2)={'Hello'};
a(2,1)={(0:0.2:pi)};
a(2,2)={52};
a
2021/3/9
授课:XXX
4
%直接赋值法二:生成元胞数组
b={randn(2,3),'Carrot'; 1+2i,1:20}
在命令行窗口输入下列命令
>> A=cell(2)
%建立22空元胞数组
A=
[] []
[] []
>> B=cell(3,4)
%建立34空元胞数组
B=
[] [] [] []
[] [] [] []
[] [] [] []
>> C=cell(2,3,4)
%建立多维空元胞数组
C(:,:,1) =
[] [] []
[] [] []
2021/3/9
授课:XXX
10
“元胞标识”:以二维元胞数组a为例,a(2,1)是指中的第 2行第1列的元胞元素;
cell函数的语法为: c = cell(n);建立nn的空元胞数组。 c = cell(m, n)或c = cell([m, n]);建立mn的空元胞数组。 c = cell(size(A));建立与A数组同样尺寸的空元胞数组
2021/3/9
授课:XXX
8
【例4.1-3】用cell函数建立元胞数组
%直接赋值法三:生成元胞数组
c=[{randn(2,3)},{'Carrot'};{1+2i},{1:20}]

MATLAB讲稿——第四章.ppt

MATLAB讲稿——第四章.ppt

P [an an1 a1 a0 ]
二、 多项式行向量的生成方法 1、直接输入法
将多项式的各项系数依降幂次序排放在行 向量的元素位置上。
缺项系数输为0。
2、利用指令生成法 指令 P=poly(AR)
说明:(1)若AR是方阵,则多项式P就是该方阵的 特征多项式;
(2)若AR是行向量,即
AR [ar1 ar2
再例:
>> R=[-0.5 -0.3+0.4i -0.3-0.4i] %根向量
R=
-0.5000
-0.3000 + 0.4000i -0.3000 - 0.4000i
>> P=poly(R) % R的特征多项式
P=
1.0000 1.1000 0.5500 0.1250
>> PPR=poly2str(P,'x') %用习惯的方式显示多项式
例:
>> A=[1 4 7;3 11 6;5 32 68]; >> PA=poly(A) %A的特征多项式
PA =
1.0000 -80.0000 588.0000 -147.0000 >> PPA=poly2str(PA,'s') %用习惯的方式显示多项式
PPA =
s^3 - 80 s^2 + 588 s - 147
PPR =
x^3 + 1.1 x^2 + 0.55 x + 0.125
4.2 多项式运算函数及调用格式
举例
(s2 2)(s 4)(s 1)
例:求
s3 s 1
的“商”和“余”多项式。
>> p1=conv([1 0 2],conv([1 4],[1 1])); %计算分子多

matlab讲义第四章

matlab讲义第四章

图4.11 函数PEAKS的带洞孔曲面图
MATLAB的surf也有两个同种函数:surfc,它画出具有 基本等值线的曲面图。surfl,它画出一个有亮度的曲面 图。例如:
» [X,Y,Z]=peaks(30); » surfc(X,Y,Z) % surf plot with contour plot » grid,xlabel('x-axis'),ylabel('yaxis'),zlabel('z-axis') » title('SURFC of PEAKS')
图4.3 正弦曲线图
利用在x-y平面的矩形网格点上的z轴坐标值,MATLAB 定义了一个网格曲面。MATLAB通过将邻接的点用直线连接起 来形成网状曲面 ,其结果好象在数据点有结点的鱼网。例 如,用MATLAB的函数peaks可以画一个简单的曲面。 » [X,Y,Z]=peaks(30); » mesh(X,Y,Z) » grid on » xlabel('x-axis'),ylabel('y-axis'),zlabel('zaxis') » title('MESH of PEAKS')
图4.4 函数PEAKS的网格图
在显示器上要注意到线的颜色与网格的高度有关。一般情况下, 函数mesh有可选的参量来控制绘图中所用的颜色。关于MATLAB如何 使用、改变颜色在下面讨论。在任何情况下,由于颜色用于增加图 形有效的第四维,这样使用的颜色被称做伪彩色。 上图所示,网格线条之间的区域是不透明的。MATLAB命令 hidden控制网格图的这个特性。例如,用MATLAB的函数sphere产生 两个球面如下: » [X,Y,Z]=sphere(12); » subplot(1,2,1) » mesh(X,Y,Z),title('Opaque') » hidden on; » axis off; » subplot(1,2,2),title('Transparent'); » mesh(X,Y,Z); » hidden off; » axis off;

MATLAB第4章图像处理_PPT课件

MATLAB第4章图像处理_PPT课件
4.1 图像的代数运算
4.1.1 相加运算 imadd
两幅图像叠加:I和J图像矩阵的大小和类型相同, 也就是维数要相同。
I = imread('rice.png'); J = imread('cameraman.tif'); K = imadd(I,J,'uint16'); subplot(2,2,1), imshow(I) subplot(2,2,2), imshow(J) subplot(2,2,3), imshow(K,[]) 图像整体亮度增加:一个图像和一个常数的求和。
I = imread('rice.png'); J=imadd(I, 50); subplot(1,2,1), imshow(I) subplot(1,2,2), imshow(J)
4.1.2 减法运算
imsubtract
两幅图像相减 I = imread('rice.png'); J=imread('cameraman.tif'); Iq = imsubtract(I,J); subplot(2,2,1), imshow(I) subplot(2,2,2), imshow(J) subplot(2,2,3), imshow(Iq) 图像整体亮度减小 I = imread('rice.png'); J=imsubtract(I, 50); subplot(1,2,1), imshow(I) subplot(1,2,2), imshow(J)

J=imread('cameraman.tif'); X1=imresize(J,2); X2=imresize(J,2,'bilinear'); X3=imresize(J,2,'bicubic'); figure,imshow(J) figure,imshow(X1) figure,imshow(X2) figure,imshow(X3)

matlab第四章PPT.ppt.ppt

matlab第四章PPT.ppt.ppt

25
3.矩阵逆 如果n×n矩阵A和B,满足AB=In×m,那么B称作A的逆, 并采用符号A-1记述之。
MATLAB提供一个求矩阵逆的指令如下:
A_1=inv(A) 求非奇异方阵A的逆,使A*A_1=I
26
4.2.4 一般代数方程的解
[x, favl]=fzero(fun,x0) [x, fval]=fsolve(fun,x0) 求一元函数零点指令的最简格式 解非线性方程组的最简单格式
2 0 . 1 t
例 4 . 2 9 求 f ( t ) s i n te 0 . 5 | t | 的 零 点 。
27
(2) 数值法求解 (A)使用内联对象表示被处理函数。 (B)作图法观察函数零点分布
28
(C)利用zoom和ginput指令获得零点的初始近似值。 >>zoom on >>[tt,yy]=ginput(5);zoom off
一、近代交通业发展的原因、特点及影响 1.原因 (1)先进的中国人为救国救民,积极兴办近代交通业,促
进中国社会发展。
(2)列强侵华的需要。为扩大在华利益,加强控制、镇压
中国人民的反抗,控制和操纵中国交通建设。
(3)工业革命的成果传入中国,为近代交通业的发展提供 了物质条件。
2.特点 (1)近代中国交通业逐渐开始近代化的进程,铁路、水运和
23
1 5 9 13 2 6 10 14 x 的解。 例4.2 8求方程 3 7 11 15 4 8 12 16 如何确定解得性状(唯一与否,准确与否); 如何求特解和齐次解; 如何检查解得正确性。
24
(3) 求特解和通解,并对由它们 (1)创建待解方程的A和b (2)检查b是否在A的值空间中 构成的全解进行验算 (确定解:不唯一,准确解)

matlab第四章课件

matlab第四章课件

4.1.1 M文件的分类
M文件是由若干 Matlab 命令组合在一起构成的,它可 以完成某些操作,也可以实现某种算法
事实上,Matlab 提供的内部函数以及各种工具箱,都是利用 Matlab 语言编写的 M文件 用户也可以结合自己的工作需要,开发自己的程序或工具箱
M文件根据调用方式的不同可以分为两类: Script file:命令文件/脚本文件 Function file:函数文件
例2 输入x,y的值,并将它们的值互换后输出(swap.m)。 x=input('Input x please.'); y=input('Input y please.'); z=x; x=y; y=z; disp(x); disp(y); 例3 求一元二次方程ax2 +bx+c=0的根(root.m)。 a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
例如:
s=0; a=[12 13 14;15 16 17;18 19 20;21 22 23] for k=a s=s+k; end disp(s); 该程序的功能是求矩阵各行元素之和,执行结果是: 39 48 57 66
while语句
while expr (条件) statement(循环体语句) end 若expr成立,则执行循环体的内容,执行后 再判断条件是否为真,如果不成立则跳出循环体。

matlab第四讲PPT课件

matlab第四讲PPT课件

如需在同一窗口中布置独立的子图,则可在plot命令前加 上subplot命令将一个窗口划分为多个区域,每个区域一幅 子图。
语法:
subplot(m,n,k) 前图
%使m*n幅子图中的第k幅成为当
子图排列次序:先向右后向下
例:画4个子图
>>x=0:0.1:2*pi subplot(2,2,1) %分割为2*2个子图,左上方为当前图
(2)步骤2一般在图形较多的情况下,需要 指定图形窗口、子图时使用。
(3)除步骤1、2、3的其他步骤,可根据需 要改变前后次序。
4.1.3 多个图形绘制的方法
指定图形窗口
前面介绍的plot命令,绘制图形都是在默认 的Figure No.1窗口中,重复使用plot命令时, 后绘制的图形就将前面绘制的图形覆盖了。
plot(x,sin(x)) subplot(2,2,2) %右上方为当前图
plot(x,cos(x))
subplot(2,2,3) plot(x,sin(3*x))
subplot(224) 略逗号
plot(x,cos(3*x))
%左下方为当前图 %右下方为当前图,省
绘图后使用clf命令清除图形窗。 例:>>clf
(2)如果x是矩阵,而y是向量,则y的长度必须等于x的行 数或列数,绘制的方法与前述方法相似。
(3)如果x和y都是矩阵,则大小必须相同,将矩阵x的每列 和y的每列画一条曲线。
例:>>x1=[1 2 3]
y1=[1 2 3;4 5 6]
plot(x1,y1)
%每行1条曲线,第一条包含
(1,1)(2,2)(3,3),第二条包含(1,4)(2,5)(3,6)
用plot(x1,y1,x2,y2,…)命令绘制多条曲线
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

k = 1; if length(k)~=1 end k = rem(k,4);
else
error('k must be a scalar');
end
if k == 1 A = A.'; B = A(n:-1:1,:); elseif k == 2 B = A(m:-1:1,n:-1:1); elseif k == 3 B = A(m:-1:1,:); B = B.'; else B = A; end

⑴ 建立函数文件 function [out1,out2]=power(a,b,n) %power.m (a+b)^n (a-b)^n out1=(a+b)^n; out2=(a-b)^n; ⑵建立调用上述函数文件的命令example.m a=input(‘please input a=’); b=input(‘please input b=’) addpow=zeros(1,10); subpow=zeros(1,10); for k=1:10 [addpow(k),subpow(k)]=power(a,b,k); end addpow subpow
用来实现控制转移和相互之间的数据传递。
1.函数调用
在MATLAB中,调用函数的常用形式:
[输出参数1,输出参数2…]=函数名(输入参数1,输
入参数2)
函数调用可以嵌套,一个函数可以调用别的函数,甚
至调用它自己(递归调用)
例:给定两个实数a,b,一个正整数n,给出k=1,2…n时 所有的(a+b)^k和(a-b)^k
fliplr函数
function y = fliplr(x)


% FLIPLR Flip matrix in the left/right direction. % FLIPLR(X) returns X with row preserved and columns flipped % in the left/right direction. % % X = 1 2 3 becomes 3 2 1 % 4 5 6 6 5 4 % % See also FLIPUD, ROT90. [m, n] = size(x); y = x(: , n : -1 : 1);


was used. % t = TOC; saves the elapsed time in t, instead of printing it out. % % See also TIC, ETIME, CLOCK, CPUTIME. % Copyright (c) 1984-94 by The MathWorks, Inc. % TOC uses ETIME and the value of CLOCK saved by TIC. global TICTOC if nargout < 1 elapsed_time = etime(clock,TICTOC) else t = etime(clock,TICTOC); end
logspace函数
function y = logspace(d1, d2, n) if nargin == 2

n = 50; end if d2 == pi d2 = log10(pi); end y = (10).^ [d1+(0:n-2)*(d2-d1)/(floor(n)-1), d2];
linspace函数
function y = linspace(d1, d2, n) %LINSPACE Linearly spaced vector. % LINSPACE(X1, X2) generates a row vector of




100 linearly % equally spaced points between X1 and X2. if nargin == 2 n = 100; end y = [d1+(0:n-2)*(d2-d1)/(floor(n)-1) d2];



CPUTIME. % Copyright (c) 1984-94 by The MathWorks, Inc. % TIC simply stores CLOCK in a global variable. global TICTOC TICTOC = clock;
function t = toc % TOCRead the stopwatch timer. % TOC, by itself, prints the elapsed time since TIC
例:编写一个函数文件,求向量的平均值,并调用此函数 文件求1:100的平均值
function y=vectoraverage(a) %向量元素的平均值 %语法:其中a为输入变量,当输入a非向量时,给出

错误信息。 [m,n]=size(a) if (~(m==1︱n==1))︱(m==1&n==1) error (‘input must be a vector’) end y=sum(a)/length(a)
函数文件charray.m: function fout=charray(a,b,c) if nargin==1 fout=a; else if nargin==2 fout=a+b; else if nargin==3 fout=(a*b*c)/2; end 命令文件mydemo.m: x=[1:3]; y=[1;2;3]; charray(x) charrayfor循环
for 循环变量=初值:增量:
while循环
while 条件式 循环体语句组 end
终值
循环体语句组 end
for i=1:10; y(i)=i; end; y
for i=1:10; y=i; end; y
例:利用for循环产生0~20内的偶数
3)命令文件的文件名的保存是以字母打头,后面可以
接字母的下划线等作为文件名,而函数文件的文件名
必须与函数名同名。
函数调用和参数传递
MATLAB中的函数调用及参数传递比较复杂,但是这
两种工作又是编写高质量的M文件所不可少的,一个 较大的计算任务可以分成若干个较小的任务,这意味
着, 一个程序可以由若干个函数组成,并通过函数调
function y=sinc(x) %SINC Sin(pi*x)/(pi*x) function. % SINC(X) returns a matrix whose elements are




the sinc of the elements % of X, i.e. % y = sin(pi*x)/(pi*x) if x ~= 0 % =1 if x == 0 y=ones(size(x)); i=find(x); y(i)=sin(pi*x(i))./(pi*x(i));
function tic % TIC Start a stopwatch timer. % The sequence of commands % TIC % any stuff % TOC % prints the time required for the stuff. % % See also TOC, CLOCK, ETIME,
tic 和toc 合在一起工作如一个跑表。在函数
tic 中,变量TICTOC 说明为全局的,因此它 的值由调用函数clock 来设定。以后在函数 toc 中,变量TICTOC 也说明为全局的,让toc 访问存储在TICTOC 中的值。利用这个值, toc 计算自执行函数tic以来消逝的时间。值得 注意的是,变量TICTOC存在于tic和toc的工 作空间,而不在MATLAB工作空间。
例:利用函数的递归调用,求n!
function f =factor(n) if n<=1 f=1;
else
f=factor(n-1)*n; end
2.参数传递
MATLAB在函数调用上有一个与众不同之处,函数所传递的参数
具有可调性,凭借这种特性,一个函数就可以完成多种功能。
如果变量说明是全局的,函数可以与其它函数、
MATLAB工作空间和递归调用本身共享变量。为 了在函数内或MATLAB工作空间中访问全局变量, 在每一个所希望的工作空间,变量必须说明是 全局的。
例: 全局变量应用示例
全局变量用global命令定义,格式为: global 变量名 例: 先建立函数文件wadd.m,该函数将输入的参数加 权相加。 function f=wadd(x,y) global ALPHA BETA f=ALPHA*x+BETA*y; 在命令窗口中输入: global ALPHA BETA ALPHA=1; BETA=2; s=wadd(1,2)
例:编写函数文件mmin,使该文件输出两个变量,第一 一个变量返回矩阵中的单个最小值。第二个输出参量, 返回单个最小值的行和列的下标。
function [m , i]=mmin(a) % MMIN Matrix minimum value. % MMIN(A) returns the minimum value in the matrix A % [M,I] = MMIN(A) in addition returns the indices of % the minimum value in I = [row col]. % Copyright (c) 1996 by Prentice Hall,Inc. if nargout==2, % return indices [m , i]=min(a) ; [m , ic]=min(m) ; i=[i(ic) ic] ; else m=min(min(a)); end
相关文档
最新文档