MATLAB课件第二章_第1页
MATLAB课件第二章_第2页
MATLAB课件第二章_第3页
MATLAB课件第二章_第4页
MATLAB课件第二章_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 基本语法基本语法1 1 表达式和变量表达式和变量一、表达式一、表达式表达式由运算符、函数、变量和数字组成表达式由运算符、函数、变量和数字组成基本形式:基本形式:表达式表达式变量变量= =表达式表达式1.1.数值表达式数值表达式一般形式一般形式11.2-3.541.2e73.5e-3数据精度数据精度 eps=2-52数据范围数据范围 2-1023-21022复数复数i, j表示复数单位表示复数单位2.2.常用运算符常用运算符 + + - - * * / / (左除,矩阵运算中用于求解方程组左除,矩阵运算中用于求解方程组) )二、变量二、变量MATLAB变量可以用一个字母打头,最后最

2、变量可以用一个字母打头,最后最多可接多可接19个字符或数字定义一个变量。个字符或数字定义一个变量。(MATLAB中是区分大小写)中是区分大小写)并不要求事先对所使用的变量进行声明,也不并不要求事先对所使用的变量进行声明,也不需要指定变量类型需要指定变量类型一般变量、永久变量和特殊变量一般变量、永久变量和特殊变量永久变量及其含义永久变量及其含义 变量名称变量名称 变量含义变量含义realmin最小的浮点数最小的浮点数realmax最大的浮点数最大的浮点数eps容差变量,定义为容差变量,定义为1.01.0到最近浮点的距离,到最近浮点的距离,PCPC机上等于机上等于2 2-52-52pi圆周率的近似

3、值圆周率的近似值inf正无穷大,定义为(正无穷大,定义为(1/01/0)nan非数,产生于非数,产生于0/00/0,/,0 0* *等运算等运算i ,j虚数单位虚数单位特殊变量特殊变量nargin函数的输入变量数目函数的输入变量数目nargout函数的输出变量数目函数的输出变量数目2 MATLAB基本运算基本运算数组运算数组运算矩阵运算矩阵运算关系与逻辑运算关系与逻辑运算字符与字符串运算字符与字符串运算符号运算符号运算一、数组运算一、数组运算n运算性质:元素对元素的运算运算性质:元素对元素的运算nMATLAB的数组类型的数组类型 数值数组数值数组 字符串数组字符串数组 元胞数组元胞数组 结构数

4、组结构数组 1. 1. 一维数组的创建一维数组的创建直接创建直接创建 x=初值:终值初值:终值 x=初值:增量:终值初值:增量:终值 x=linspace(初值,终值,(初值,终值,n) x=logspace(a,b,n) 2.2.一维子数组的寻访与赋值一维子数组的寻访与赋值MATLAB用括号来表示下标,访问数组中的用括号来表示下标,访问数组中的元素同样是利用元素的下标。元素同样是利用元素的下标。x(n)表示数组表示数组x中的第中的第n个元素。个元素。 n在这里表示在这里表示元素的下标。元素的下标。例例: : x=2:2:10,n=4x(n)x(1:3)x(3:-1:1)x(2:end)x(1

5、 3 3 2 4 5)x(3)=0 x(1,3)=3 9x=2 4 6 8 10 n=4ans=8ans=2 4 6ans=6 4 2ans=4 6 8 10ans=2 6 6 4 8 10 x=2 4 0 8 10 x=3 4 9 8 103. 23. 2维数组的创建维数组的创建直接创建直接创建 , , ; , , ; , ,a=1:3;4:6;7:9eye(n)eye(3) magic(n)magic(3) 987654321a100010001ans294753618ans4. 24. 2维数组的寻访维数组的寻访双下标双下标 x(m,n),表示寻访数组,表示寻访数组x的第的第m行第行第n

6、列的元素。列的元素。单下标单下标 x(n),表示寻访数组,表示寻访数组x的第的第n个元素。个元素。例:例:x(3,1) x(3,1) x(3) x(1 3 5)5. 5. 数组运算数组运算元素对元素的运算元素对元素的运算运算符运算符 + - .* ./ .例例: 2.*a 2*a a.*b a*b a./b a/b a.2 a26. 数组操作数组操作 x=4:6,求下列操作,求下列操作 1) 插入插入A=x-3;x;x+3 2) 重新排列重新排列B=A(3:-1:1,1:3) 3) 提取提取C=A(1:2,2:3) 4) 按列拉长按列拉长D=C(:) 5) 置空置空B(:,2)= 6) 置零置

7、零B(2,2)=0数组操作数组操作 7) 用单下标操作一个矩阵用单下标操作一个矩阵B(2:4) 8) 用逻辑表达式操作一个矩阵用逻辑表达式操作一个矩阵 x=-3:3 abs(x)2 9) 按指定条件求子数组按指定条件求子数组求数组求数组x=-4:4中满足中满足|x|2的元素的元素find( )作用于逻辑数组时,返回逻辑数组中非零元素的作用于逻辑数组时,返回逻辑数组中非零元素的下标下标find(abs(x)2)x(find(abs(x)2)数组操作数组操作n10) 求数组的大小求数组的大小size(x)返回返回x的行列值,用的行列值,用n,m表示表示length(x) 返回返回x的行数和列数中较

8、大的一个的行数和列数中较大的一个a=1:3;4:6size(a) - ans=2 3r,c=size(a)获取在线帮助获取在线帮助 help%获取帮助主题获取帮助主题HELP topics:matlabgeneral - General purpose commands.matlabops - Operators and special characters.matlablang - Programming language constructs.matlabelmat - Elementary matrices and matrix manipulation.matlabelfun - El

9、ementary math functions. help elfun %获取帮助主题下的函数列表获取帮助主题下的函数列表 Elementary math functions. Trigonometric. sin - Sine. sinh - Hyperbolic sine. asin - Inverse sine. asinh - Inverse hyperbolic sine. cos - Cosine. cosh - Hyperbolic cosine. help sin %获取具体函数的帮助获取具体函数的帮助 SIN Sine. SIN(X) is the sine of the e

10、lements of X.搜索函数搜索函数 lookfor Fourier FFT Discrete Fourier transform. FFT2 Two-dimensional discrete Fourier Transform. FFTN N-dimensional discrete Fourier Transform. IFFT Inverse discrete Fourier transform. IFFT2 Two-dimensional inverse discrete Fourier transform. IFFTN N-dimensional inverse discret

11、e Fourier transform.模糊搜索 sin按按Tab键键 sin sinc single sinh sinsml sinusoid sin_tr sinfo singvals sinint sint sinv MATLABMATLAB的帮助文档界面的帮助文档界面 7. 数组操作函数数组操作函数 diag(A)提取矩阵提取矩阵A的对角元素,并返回给列向量的对角元素,并返回给列向量diag(v)以向量以向量v作对角元素来创建对角矩阵作对角元素来创建对角矩阵flipud(A)将矩阵上下翻转将矩阵上下翻转fliplr(A)将矩阵左右翻转将矩阵左右翻转rot90(A)矩阵逆时针翻转矩阵逆时

12、针翻转90reshape(A,m,n) 返回一个返回一个mn矩阵,其元素是以列方式从矩阵,其元素是以列方式从A中获得,中获得,A必须包含必须包含mn个元素个元素tril(A)提取矩阵提取矩阵A的下三角矩阵的下三角矩阵triu(A)提取矩阵提取矩阵A的上三角矩阵的上三角矩阵2021-10-3125例例:B=fliplr(A)B=flipud(A)B=rot90(A)B=tril(A)987654321A789456123B321654987B741852963B987054001B8. 多维数组多维数组多维数组用行、列和页来表示。多维数组用行、列和页来表示。以维数为以维数为 342 的三维数组的

13、三维数组A为例为例 A(:,:,1) 表示第一页的二维数组表示第一页的二维数组 A(:,:,2) 表示第二页的二维数组表示第二页的二维数组多维数组的创建多维数组的创建1)直接创建)直接创建 a(:,:,1)=eye(3) a(:,:,2)=ones(3) a(:,:,4)=magic(3) 2) 由低维数组合成而成由低维数组合成而成a=ones(3,4)a(:,:,2)=2*ones(3,4)a(:,:,3)=3*ones(3,4)3)由函数创建而成)由函数创建而成 a=reshape(1:18,2,3,3)多维矩阵操作多维矩阵操作 a(:,1,:) a(:,:,1 3) a(2,2,2)=1

14、 a(2,3,:)=1:3 a(:,2:3,:)= size(a)9. 元胞数组元胞数组 元胞数组是元胞数组是MATLAB的一种特殊数据类型,的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞数组的元素叫做元

15、胞 。元胞数组的创建元胞数组的创建1)直接创建)直接创建 a=matlab,20;ones(2,3),1:10a = matlab 202x3 double 1x10 double b=matlab,20;ones(2,3),1:10b = matlab 202x3 double 1x10 double元胞数组的创建元胞数组的创建用用cell函数创建函数创建c=cell(2,3)c = c(1,1)=mc = m c(1,2)=ones(3)c = m 3x3 double c(2,3)=9c = m 3x3 double 9 元胞数组的寻访元胞数组的寻访用于用于指定元胞的内指定元胞的内容,容

16、,( )表示指定元胞表示指定元胞中中的元素的元素。am,n 元胞数组元胞数组a中第中第m行行n列的元胞的内容列的元胞的内容am,n(m,n) 元胞数组元胞数组a中第中第m行行n列的元胞中的列的元胞中的第第m行行n列的元素列的元素 a=matlab,20;ones(2,3),1:10a = matlab 20 2x3 double 1x10 double a2,2ans = 1 2 3 4 5 6 7 8 9 10 a2,2(5)ans = 5元胞数组的操作元胞数组的操作 a=matlab,20;ones(2,3),1:10 a1,2=magic(3) a(1,:) a1,: a1,2(3,3)

17、=0 a1,2 a(1,:)= double 1x10 double 2x3 double 3x3 matlabadouble 3x3 matlabans 2 9 47 5 36 1 8 matlabansansdouble 1x10 double 2x3 double 3x3 matlaba 0 9 47 5 36 1 8ansdouble 1x10 double 2x3 a结构数组(构架数组)结构数组(构架数组) 结构是包含一组记录的数据类型,结构的字段可结构是包含一组记录的数据类型,结构的字段可以是任意一种以是任意一种MATLAB数据类型的变量或者对象。结数据类型的变量或者对象。结构类型

18、的变量也可以是一维的、二维的或多维的数组。构类型的变量也可以是一维的、二维的或多维的数组。在访问结构类型数据的元素时,需要使用下标配合字在访问结构类型数据的元素时,需要使用下标配合字段的形式。段的形式。 可以在一个数组中放置各类的数据,并且一个结构可以在一个数组中放置各类的数据,并且一个结构数组还能是另一个结构数组的一部分。相比较而言,数组还能是另一个结构数组的一部分。相比较而言,比元胞数组更为强大,也更加富于变化。比元胞数组更为强大,也更加富于变化。结构数组的创建结构数组的创建1)直接赋值法创建结构数组)直接赋值法创建结构数组 =tiger; employee.se

19、x=male; employee.age=24; employee.number=12345; employeeemployee = name: tiger sex: male age: 24 number: 12345结构数组的创建结构数组的创建2)用)用struct函数创建结构数组函数创建结构数组str_array=struct(field1, val1,field2, val2.);student=struct(number,0901001,name,cherry,sex,female,age,19,class,01,department,09)student = number: 090

20、1001 name: cherry sex: female age: 19 class: 01 department: 09student=struct(number,0901001,0901002,name,cherry,Tom,sex,female,male,age,19,20,class,01,01,department,09,09,score,rand(2,5)*100)student = 1x2 struct array with fields: number name sex age class department score学生基本信息结构数组学生基本信息结构数组student

21、.cherryTom.sexfemalemale.age1920.class0101.department0909结构数组的寻访结构数组的寻访 student(1) student(2) student.number student(2).number student(1).score结构数组的操作student(2)= student = number: 0901001 name: cherry sex: female age: 19 class: 01 department: 09 score: 2x5 double例: 温室数据(温室名、

22、容量、温度、湿度等)的创建与显示。 green_ = 一号温室一号温室green_house = name: 一号温室一号温室 green_house.volume = 2000立方米立方米green_house = name: 一号温室一号温室 volume: 2000立方米立方米 green_house.parameter.temperature = 31.2 30.4 31.6 28.7 green_house = name: 一号温室一号温室 volume: 2000立方米立方米 parameter: 1x1 struct green_house.parameter

23、.humidity = 62.1 59.5 57.7 61.5green_house = name: 一号温室一号温室 volume: 2000立方米立方米 parameter: 1x1 struct green_housegreen_house = name: 一号温室一号温室 volume: 2000立方米立方米 parameter: 1x1 struct green_ans = 一号温室一号温室 green_house.parameterans = temperature: 31.2000 30.4000 31.6000 28.7000 humidity: 62.10

24、00 59.5000 57.7000 61.5000二、矩阵运算二、矩阵运算n矩阵运算采用的是线性代数的运算规则矩阵运算采用的是线性代数的运算规则n矩阵运算运算符:矩阵运算运算符: +、-、*、/、常用产生特殊矩阵的函数常用产生特殊矩阵的函数矩阵函数矩阵函数 说明说明 zeros(m,n)m行行n列零矩阵列零矩阵 ones(m,n) m行行n列列1矩阵矩阵 eye(m) m阶单位矩阵阶单位矩阵 rand(m,n)m行行n列随机矩阵列随机矩阵 randn(m,n) m行行n列正态分布的随机矩阵列正态分布的随机矩阵 产生特殊矩阵的函数产生特殊矩阵的函数矩阵函数 说明 矩阵函数 说明 zeros(m

25、,n) 零矩阵 magic(n) magic方阵 ones(m,n) 1矩阵 toeplitz(m,n) Toeplitz矩阵 eye(m) 单位矩阵 wilkinson(n) wilkinson特征值测试矩阵 randn(m,n) 正态分布的随机矩阵 hadamard(n) hadamard矩阵 company(A) 矩阵A的伴随矩阵 hilb(n) hilbert矩阵gallery 测试矩阵 kron(A,B) Kronecker张量积 hankel(m,n) n维hankel矩阵 pascal(n) pascal矩阵 invhilb(n) n维hilbert逆矩阵 vander(A) v

26、andermonde矩阵 数组函数和矩阵函数数组函数和矩阵函数 基本数组函数表见教材表基本数组函数表见教材表2.7 三三 角角 函函 数数 函 数 说 明 函 数 说 明 函 数 说 明 sin 正弦函数 tanh 双曲正切函数 csch 双曲余割函数 sinh 双曲正弦函数 atan 反正切函数 acsc 反余割函数 asin 反正弦函数 atan2 四象限反正切函数 acsch 反双曲余割函数 asinh 反双曲正弦函数 atanh 反双曲正切函数 cot 余切函数 cos 余弦函数 sec 正割函数 coth 双曲余切函数 cosh 双曲余弦函数 sech 双曲正割函数 acot 反余切

27、函数 acos 反余弦函数 asec 反正割函数 acoth 反双曲余切函数 acosh 反双曲余弦函数 asech 双曲反正割函数 tan 正切函数 csc 余割函数 指数运算函数指数运算函数 函 数 说 明 函 数 说 明 exp 指数函数 realpow 实数幂运算函数 log 自然对数函数 reallog 实数自然对数函数 log10 常用对数函数 realsqrt 实数平方根函数 log2 以 2 为底的对数函数 sqrt 平方根函数 pow2 2 的幂函数 nextpow2 求大于输入参数的第一个 2 的幂 复复 数数 运运 算算 函 数 说 明 函 数 说 明 abs 求复数的模

28、,若参数为实数则求绝对值 real 求复数的实部 angle 求复数的相角 unwrap 相位角按照 360线调整 complex 构造复数 isreal 判断输入参数是否为实数 conj 求复数的共轭复数 cplxpair 复数阵成共轭对形式排列 image 求复数的虚部 圆整和求余函数圆整和求余函数 函 数 说 明 函 数 说 明 fix 向 0 取整的函数 mod 求模函数 floor 向取整的函数 rem 求余数 ceil 向取整的函数 sign 符号函数 round 向最近的整数取整的函数 例: MATLAB的圆整和求余函数。在MATLAB的命令行中,键入下面的指令: fix(-1.

29、9)ans = -1 floor(-1.9)ans = -2 round(-1.9)ans = -2 ceil(-1.9)ans = -1 矩阵函数矩阵函数det(A)方阵方阵A的行列式值的行列式值Inv(A)方阵方阵A的逆矩阵的逆矩阵dot(A,B) 矩阵矩阵A、B的点积的点积 eig(A) 矩阵矩阵A的特征值和特征向量的特征值和特征向量 poly(A)矩阵矩阵A的特征多项式系数的特征多项式系数roots(p)矩阵矩阵A的特征根的特征根norm(A)或或norm(A,2) 矩阵矩阵A的的2-范数范数 rank(A) 矩阵矩阵A的秩的秩 trace(A) 矩阵矩阵A的迹的迹 sqrtm(A)

30、矩阵矩阵A的平方根的平方根 logm(A) 矩阵矩阵A的对数的对数 expm(A) 矩阵矩阵A的指数的指数2021-10-3153求方程求方程f(x)=x3 + 1.1 x2 + 0.55 x + 0.125=0的根的根A=1 ,1.1 ,0.55, 0.125;p=roots(A)p = -0.5000 -0.3000 + 0.4000i -0.3000 - 0.4000i矩阵分解函数矩阵分解函数函数函数功能功能l,u=lu(A) 矩阵矩阵A的三的三角分解角分解q,r=qr(A) 矩阵矩阵A的正的正交分解交分解s,v,d=svd(A)矩阵矩阵A的奇的奇异值分解异值分解奇异值分解的应用(图像压

31、缩)奇异值分解的应用(图像压缩)n比如一幅比如一幅1000*1000的图像的图像A,存储就需要,存储就需要1000000个个像素了。对像素了。对A进行进行svd分解,则分解,则A=USV,如果,如果rank(A)=r,那么,那么U就为就为1000*r的矩阵,的矩阵,S为为r*r的矩阵,的矩阵,V为为1000*r的矩阵。所以存储的数据就是的矩阵。所以存储的数据就是1000*r+r*r+1000*r个数了,如果这个个数了,如果这个r比较小,那么比较小,那么存储的空间就会小很多了,当然了,如果存储的空间就会小很多了,当然了,如果r=1000,这,这时这样来算时这样来算svd就是既浪费了空间又浪费了时

32、间。所就是既浪费了空间又浪费了时间。所以用以用svd去进行图像压缩时,需先看看它的秩。去进行图像压缩时,需先看看它的秩。 图像压缩与重构示例程序图像压缩与重构示例程序nclear all;nclose all;nclc;na=imread(f:lenna.jpg);nsubplot(2,3,1)nimshow(a)ntitle(original figure)nm, n=size(a);na=double(a);nr=rank(a);ns, v, d=svd(a);n%re=s*v*d;nre=s(:,:)*v(:,1:1)*d(:,1:1);nsubplot(2,3,2)n%imshow(m

33、at2gray(re);nimshow(uint8(re)ntitle(one svd value)nimwrite(mat2gray(re),f1.jpg)nre1=s(:,:)*v(:,1:20)*d(:,1:20);nsubplot(2,3,3)n%imshow(mat2gray(re);nimshow(uint8(re1)ntitle(20 svd value)nimwrite(mat2gray(re1),f2.jpg)nre2=s(:,:)*v(:,1:80)*d(:,1:80);nsubplot(2,3,4)n%imshow(mat2gray(re);nimshow(uint8(r

34、e2)ntitle(80 svd value)nimwrite(mat2gray(re2),f3.jpg)nre3=s(:,:)*v(:,1:150)*d(:,1:150);nsubplot(2,3,5)n%imshow(mat2gray(re);nimshow(uint8(re3)ntitle(150 svd value)nimwrite(mat2gray(re3),f4.jpg)nre4=s(:,:)*v(:,1:200)*d(:,1:200);nsubplot(2,3,6)n%imshow(mat2gray(re);nimshow(uint8(re4)ntitle(200 svd val

35、ue)nimwrite(mat2gray(re4),f5.jpg)数据分析函数数据分析函数 min(x)最小分量最小分量max(x)最大分量最大分量sum(x)各列的元素和各列的元素和prod(x)列元素的积列元素的积mean(x)均值或列的平均值均值或列的平均值median(x)列的中值列的中值std(x)列的标准偏差列的标准偏差corrcoef(x)求相关系数求相关系数cov(x)协方差矩阵协方差矩阵sort(x)按升序排列按升序排列曲线拟合与插值曲线拟合与插值在大量的应用领域中,人们经常面临用一个解析函数在大量的应用领域中,人们经常面临用一个解析函数描述数据描述数据(通常是测量值通常是测

36、量值)的任务。对这个问题有两种方的任务。对这个问题有两种方法。法。曲线拟合法:需要设法找出某条光滑曲线,它最佳地曲线拟合法:需要设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点拟合数据,但不必要经过任何数据点 。插值法:数据假定是正确的,要求以某种方法描述数插值法:数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。据点之间所发生的情况。曲线拟合与插值函数曲线拟合与插值函数polyfit(x, y, n)对描述对描述n阶多项式阶多项式y=f(x)的的数据进行最小二乘曲线拟合数据进行最小二乘曲线拟合interp1(x, y, xo)1维线性插值维线性插值interp1(x,

37、 y, xo, spline )1维维3次样条插值次样条插值interp1(x, y, xo, cubic )1维维3次插值次插值interp2(x, y, z, xi, yi)2维线性插值维线性插值interp2(x, y, z, xi, yi, cubic )2维维3次插值次插值interp2(x, y, z, xi, yi, nearest )2维最近邻插值维最近邻插值曲线拟合曲线拟合npolyfit 的输出是一个多项式系数的行向量的输出是一个多项式系数的行向量 p=polyfit(x,y,n),其中,其中,x和和y为要拟合的数为要拟合的数据,据,n为多项式阶数,为多项式阶数,p为拟合的

38、多项式的系数。为拟合的多项式的系数。npolyval y=polyval(x,p),其中,其中,x为拟合曲线的横轴,为拟合曲线的横轴,p为拟合的多项式的系数,为拟合的多项式的系数,y为在此拟合曲线下为在此拟合曲线下的函数值。的函数值。曲线拟合曲线拟合n例:对数据例:对数据 x=0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1; y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; 进行曲线拟合,给出最佳拟合曲线进行曲线拟合,给出最佳拟合曲线n x=0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1; y=-

39、.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; n=2; p=polyfit(x, y, n) xi=linspace(0, 1, 100); z=polyval(p, xi); plot(x, y, o , x, y, xi, z, : ) 2021-10-3165例:曲线拟合例:曲线拟合x=0:0.1:1;y=-.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2;subplot(2,3,1),plot(x,y,o);title(原始数据点原始数据点);a1=poly

40、fit(x,y,1);xi=linspace(0,1);y1=polyval(a1,xi);subplot(2,3,2),plot(x,y,o,xi,y1,r); title(线性拟合线性拟合);a2=polyfit(x,y,2);y2=polyval(a2,xi);subplot(2,3,3),plot(x,y,o,xi,y2,r);title(二次拟合二次拟合); a3=polyfit(x,y,3);y3=polyval(a3,xi);subplot(2,3,4),plot(x,y,o,xi,y3,r); title(三次拟合三次拟合); a9=polyfit(x,y,9);y9=poly

41、val(a9,xi);subplot(2,3,5),plot(x,y,o,xi,y9,r); title(九次拟合九次拟合); a10=polyfit(x,y,10);y10=polyval(a10,xi);subplot(2,3,6),plot(x,y,o,xi,y10,r) ;title(十次拟合十次拟合); 2021-10-3166一维线性插值示例程序一维线性插值示例程序例例 某观测站测得某日某观测站测得某日6:00时至时至18:00时之间每隔时之间每隔2小时的小时的室内外温度室内外温度(),用,用3次样条插值分别求得该日室内外次样条插值分别求得该日室内外6:30至至17:30时之间每隔

42、时之间每隔2小时各点的近似温度小时各点的近似温度()。6:008:0010:00 12:00 14:00 16:00 18:00室内室内温度温度18202225302824室外室外温度温度15192428343230一维线性插值示例程序一维线性插值示例程序 设时间变量设时间变量h为一列向量,温度变量为一列向量,温度变量t为一个两为一个两列矩阵,其中第一列存放室内温度,第二列储列矩阵,其中第一列存放室内温度,第二列储存室外温度。命令如下:存室外温度。命令如下:h =6:2:18;t=18,20,22,25,30,28,24;15,19,24,28,34,32,30;XI =6.5:2:17.5Y

43、I=interp1(h,t,XI,spline) %用用3次样条插次样条插值计算值计算二维线性插值示例程序二维线性插值示例程序例例 某实验对一根长某实验对一根长10米的钢轨进行热源的温度传播测试。米的钢轨进行热源的温度传播测试。用用x表示测量点表示测量点0:2.5:10(米米),用,用h表示测量时间表示测量时间0:30:60(秒秒),用,用T表示测试所得各点的温度表示测试所得各点的温度()。试用。试用线性插值求出在一分钟内每隔线性插值求出在一分钟内每隔20秒、钢轨每隔秒、钢轨每隔1米处的米处的温度温度TI。命令如下:命令如下:x=0:2.5:10h=0:30:60T=95,14,0,0,0;8

44、8,48,32,12,6;67,64,54,48,41xi=0:10hi=0:20:60TI=interp2(x,h,T,xi,hi)2021-10-3170研究一维插值,并观察插值与拟合的区别。研究一维插值,并观察插值与拟合的区别。 x0=0:0.1:1;y0=-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22; xi=0:0.02:1;yi=interp1(x0,y0,xi,cubic); plot(xi,yi,-b,x0,y0,*r),xlabel(x),ylabel(y) 名名 称称标点标点作作 用用空格空格作为变量之间的分

45、隔符;数组元素分隔符;作为变量之间的分隔符;数组元素分隔符;逗号逗号,用作要显示结果的指令与下一指令间的分隔;作为变量之间的分隔符;数组元素用作要显示结果的指令与下一指令间的分隔;作为变量之间的分隔符;数组元素分隔符;分隔符;黑点黑点.小数点小数点分号分号;用于指令结尾表示不显示结果;用作数组的行间分隔符用于指令结尾表示不显示结果;用作数组的行间分隔符冒号冒号:用于冒号生产法产生一维数组;(用于数组参见数值数组部分)用于冒号生产法产生一维数组;(用于数组参见数值数组部分)注释号注释号%之后的部分被视为注释之后的部分被视为注释单引号单引号 字符串引述符字符串引述符圆括号圆括号( )在数组援引时使

46、用;函数指令输入宗量列表时使用在数组援引时使用;函数指令输入宗量列表时使用方括号方括号 输入数组时使用;函数指令输出宗量列表时使用输入数组时使用;函数指令输出宗量列表时使用花括号花括号 元胞数组引述符元胞数组引述符下连号下连号_作为变量、函数或文件名中的连字符作为变量、函数或文件名中的连字符所有符号必须在英文状态下输入Matlab常用标点的功能常用标点的功能三、关系与逻辑运算三、关系与逻辑运算n关系运算符关系运算符 、 = 、 、 A = reshape(1:9,3,3); B = magic(3); A Bans = 0 1 1 0 0 1 0 0 1 A = = B ans = 0 0 0

47、 0 1 0 0 0 0 9 6 38 5 27 4 1A 2 9 47 5 36 1 8B例例 复杂的关系运算复杂的关系运算 A = reshape(-4:4,3,3)A = -4 -1 2 -3 0 3 -2 1 4 B = (A=0)B = 1 1 0 1 0 0 1 0 0 C = (A0)&(A4)c =1 1 1 1 0 0 0 0 0c=(a4)&(a7)c =0 0 0 0 1 1 0 0 02021-10-3180其他关系与逻辑函数其他关系与逻辑函数xor(x,y) 异或运算。异或运算。x和和y都是零都是零(假假)或都是非零或都是非零(真真)返回返回0。any

48、(x) 如果在一个向量如果在一个向量x中,任何元素是非零,返回中,任何元素是非零,返回1;矩阵;矩阵x中的每一列有非零元素,返回中的每一列有非零元素,返回1。all(x) 如果在一个向量如果在一个向量x中,所有元素非零,返回中,所有元素非零,返回1;矩阵;矩阵x中的每一列所有元素非零,返回中的每一列所有元素非零,返回1。2021-10-3181例例:逻辑操作应用之一:逐段解析函数的计算和表逻辑操作应用之一:逐段解析函数的计算和表现。本例演示整流正弦波的计算和图形绘制。现。本例演示整流正弦波的计算和图形绘制。t=linspace(0,3*pi,500);y=sin(t); z1=(t2*pi).

49、*y;subplot(1,2,1),plot(t,y,:r),ylabel(y)subplot(1,2,2),plot(t,z1,:r),axis(0 10 -1 1) 2021-10-3182运算符的优先级运算符的优先级由高到低次序排列,同一级别的从左到右排列。由高到低次序排列,同一级别的从左到右排列。(转置),(转置),.,.;、*、/、.*、./、.;+、-、=、=、=&、|例例 逻辑索引示例逻辑索引示例 A = -2 10 NaN 30 0 -11 -Inf 31; pos = A B = A(pos)B = -2 -11 -Inf pos = (A=0)&(isfin

50、ite(A)pos = 0 1 0 1 1 0 0 1 C = A(pos)C = 10 30 0 31 四、字符与字符串运算四、字符与字符串运算 MATLAB中关于字符串都用单引号界定后输入或赋值。中关于字符串都用单引号界定后输入或赋值。 字符串的每个字符(空格也是字符)都响应矩阵的一个字符串的每个字符(空格也是字符)都响应矩阵的一个元素。元素。 字符以字符以ASCII码贮存,用码贮存,用abs命令可看到字符的命令可看到字符的ASCII码码值。值。 用命令用命令setstr可以实现可以实现ASCII码值向字符的转换。码值向字符的转换。 字符变量也可用方括号合并成更大的字符串。字符变量也可用方

51、括号合并成更大的字符串。 a = This is No.3-15 Example!a =This is No.3-15 Example! b = a(1:4)b =This c = a(12:15)c =3-15 d = a(17:end)d =Example! 2021-10-3186字符串转换函数字符串转换函数abs字符串到字符串到ASCII转换转换dec2hex十进制数到十六进制字符串转换十进制数到十六进制字符串转换hex2dec十六进制字符串转换成十进制数十六进制字符串转换成十进制数hex2num十六进制字符串转换成十六进制字符串转换成IEEE浮点数浮点数int2str整数转换成字符串

52、整数转换成字符串lower字符串转换成小写字符串转换成小写2021-10-3187num2str数字转换成字符串数字转换成字符串setstr ASCII转换成字符串转换成字符串sprintf用格式控制,数字转换成字符串用格式控制,数字转换成字符串sscanf用格式控制,字符串转换成数字用格式控制,字符串转换成数字str2mat字符串转换成一个文本矩阵字符串转换成一个文本矩阵str2num字符串转换成数字字符串转换成数字upper字符串转换成大写字符串转换成大写五、符号运算五、符号运算MATLAB具有实现符号计算的工具箱,符号数学具有实现符号计算的工具箱,符号数学工具箱是操作和解决符号表达式的符

53、号数学工工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合。具箱(函数)集合。符号变量的创建符号变量的创建x=sym(x) 创建符号变量创建符号变量xsyms x y z 同时定义变量同时定义变量x、y、z为符号变量为符号变量符号表达式符号表达式 syms x y f=x2-y2符号表达式中独立变量的确定符号表达式中独立变量的确定 在符号表达式中默认的独立变量是唯一的,若在符号表达式中默认的独立变量是唯一的,若符号表达式中符号变量不是唯一的,符号表达式中符号变量不是唯一的, MATLAB对单个英文小写字母(除对单个英文小写字母(除i,j外)进行外)进行搜索,且以搜索,且以x为首选独立变量

54、,就选择在字母为首选独立变量,就选择在字母顺序中最接近顺序中最接近x的字母,做为符号表达式的独的字母,做为符号表达式的独立变量。立变量。因式分解、展开和简化因式分解、展开和简化函数函数功能功能 factor(s) 对符号表达式对符号表达式s进行因式分解进行因式分解 expand(s,v) 对符号表达式对符号表达式s中变量中变量v进行展开进行展开 collect(s,v) 把把s中变量中变量v进行合并同幂项进行合并同幂项simple(s,v) 对符号表达式对符号表达式s中变量中变量v进行简化进行简化例例1. 对对x4-5x3+5x2+5x-6进行因式分解进行因式分解 syms x f=x4-5*

55、x3+5*x2+5*x-6f = x4-5*x3+5*x2+5*x-6 factor(f)ans = (x-1)*(x-2)*(x-3)*(x+1)例例2. 简化简化 syms x f=(1/x3+6/x2+12/x+8)(1/3)f = (1/x3+6/x2+12/x+8)(1/3) simple(f)ans = (2*x+1)/x33216128fxxx例例3.对对f=(x2+xe-t+1)(x+e-t)分别按分别按x和和t合并同幂项合并同幂项 syms x t f=(x2+x*exp(-t)+1)*(x+exp(-t)f = (x2+x*exp(-t)+1)*(x+exp(-t) collect(f)ans = x3+2*exp(-t)*x2+(1+exp(-t)2)*x+exp(-t) collect(f,t)ans = (x2+x*exp(

温馨提示

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

评论

0/150

提交评论