您好,欢迎来到图艺博知识网。
搜索
您的当前位置:首页一Matlab特点

一Matlab特点

来源:图艺博知识网
一Matlab特点

1语言简洁,编程效率高 2. 交互性好,使用方便3. 强大的绘图能力,便于数据可视化4学科众多、领域广泛的工具箱 5. 开放性好,易于扩充6与C 语言和Fortran 语言有良好的接口7完备的数据类型

二MATLAB 的各种文件

最基本的是M 文件、数据文件和图形文件,除此之外,还有MEX 文件、模型文件和仿真文件

1M 文件,以.m 为扩展名,所以称为M 文件2数据文件,以.mat 为扩展名,所以又称MAT 文件3图形文件,以.fig 为扩展名4MEX 文件,以.mex 或.dll 为扩展名,所以称MEX 文件5模型和仿真文件,模型文件以.mdl 为扩展名,由Simulink 仿真工具箱在建立各种仿真模型时产生

三size例13 一个三位整数各位数字的立方和等于该数本身则称该数为水

仙花数。输出全部水仙花数。 程序如下: for m=100:999

m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字

m3=rem(m,10); %求m的个位数字 rem求余数 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end

结果:153

370 371 407

功能:求阵列维大小。 格式:

d=size(X) m=size(X,dim)

[m,n]=size(X) [d1, d2, d3, …, dn]=size(X) 说明:

由于MATLAB 5.0以上版本增强了阵列功能,使之在MATLAB中可采用阵列,因此size的功能也相应地得到增强。

d=size(X)可得到阵列X每个维的尺寸,d为一向量,阵列X的维数(即向量d的长度)可由ndims(X)得到。

当X为矩阵(二维阵列)时,[m, n]=size(X)可得到其尺寸;当X为阵列时,[dl, d2, d3, …, dn]=size(X)可得到各个维的尺寸;m=size(X,dim)可得到指定维dim的尺寸。例如: >> X=rand(2, 4, 8)

m=size(X, 2) m = 4

>> d=size(X) d =

2 4 8 >> [d1, d2, d3]=size(X) d1 = 2 d2 = 4 d3 = 8

clear

功能:从工作空间中删除项目。 格式:

clear clear global name clear name clear keyword clear namel name2 name3

画出MATLAB系统的组成结构。

第二讲 MATLAB基本操作

一函数

1) MATLAB的内部函数2) MATLAB系统附带的各种工具箱中的M文件所提供的大量实用函数3) 由用户自己增加的函数,以适用于特定领域。

二矩 阵 基 础

2.2.1 矩阵的输入

在MATLAB中,输入矩阵可有以下几种方法: ● 输入元素列表。

● 从外部数据文件中读取矩阵。

● 利用MATLAB内部函数与工具箱函数产生矩阵。 ● 用户自己编写M文件产生矩阵。

三利用MATLAB内部函数与工具箱函数产生矩阵

矩阵可通过输入每个元素来直接产生,也可以通过读取由其它软件产生的数据来产生,除此之外,还可以由标准M函数产生矩阵。例如:>> a=eye(4) %产生4×4的单位阵 a =

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> a1=eye(2,3) %产生2×3的单位阵 a1 =

1 0 0 0 1 0 >> b=zeros(2,10) %产生2×10的全0阵 b =

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> c=ones(2,10) %产生2×10的全1阵 c =

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> c1=8*ones(3,5) %产生3×5的常数阵 c1 =

8 8 8 8 8 8 8 8 8 8 8 8 8 8 8

MATLAB的有些函数可输入更多的变量,以产生矩阵。例如: d=zeros(3,2,2); %产生3×2×2的零矩阵(阵列) 为了进行信号分析与处理,经常需要对接收信号进行仿真,而在信号仿真中离不开随机数的产生,MATLAB提供的rand和randn函数可分别产生均匀分布和正态分布的随机数。例如,要产生[0,1]之间均匀分布的随机向量r1(2×3),可输入: >> r1=rand(2, 3) %产生[0,1]之间均匀分布的随机矩阵 r1 =

0.4565 0.8214 0.61 0.0185 0.4447 0.7919

>> r2=5-10*rand(2, 3) %产生[-5,5]之间均匀分布的随机矩阵 r2 =

0.73 4.4211 -3.1317 -3.9365 1.4713 4.9014

>> r3=randn(2,3) %产生均值为0、方差为1的标准正态分布的随机矩阵 r3 =

1.12 0.3273 -0.1867 -0.0376 0.1746 0.7258

>> r4=2*randn(2,3)+3 %产生均值为3、方差为4(22)的正态分布的随机矩阵 r4 =

2.8087 3.5888 4.4286 1.3353 0.3276 6.2471 利用diag函数可产生对角阵,例如: >> d=[2 -10 8]

d =

2 -10 8

>> a=diag(d) %标准对角阵,非零元素位于主对角线上 a =

2 0 0 0 -10 0 0 0 8 >> a1=diag(d,1) %非零元素位于次对角线上 a1 =

0 2 0 0 0 0 -10 0 0 0 0 8 0 0 0 0 >> a2=diag(d, -1) %非零元素位于次对角线 a2 =

0 0 0 0 2 0 0 0 0 -10 0 0 0 0 8 0

fliplr和flipud函数可以将矩阵元素按左右、上下翻转,

例如:

>> fliplr(diag(d)) %非零元素位于反主对角线 ans =

0 0 2 0 −10 0 8 0 0

diag函数还可以从矩阵中提取对角线元素,例如: >> r=rand(3,3) r =

0.13 0.6038 0.0153 0.2028 0.2722 0.7468 0.1987 0.1988 0.4451 >> b=diag(r) %提取主对角线元素 b =

0.13 0.2722 0.4451

>> b1=diag(fliplr(r)) %提取反主对角线元素 b1 =

0.0153 0.2722 0.1987

利用diag函数可得到复杂的矩阵,例如:

>> v=[1 2 3 4]; v1=[7 8 9]; >> c=diag(v)+diag(v1,1) c =

1 7 0 0 0 2 8 0 0 0 3 9 0 0 0 4

四 矩阵的操作

1.矩阵转置

对矩阵进行转置是很简单的。例如,对矩阵A的转置为A',注意:当A为复数矩阵时,则A'表示共轭转置,如果要实现非共轭转置,则应采用A.',例如: >> A=[100 200 300]; >> A' ans = 100 200 300

>> B=[100+100i 200+200i 300+300i]; >> B' ans =

1.0e + 002 * 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i >> B.' ans =

1.0e+002 *

1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i

2.矩阵重排

对已经存在的矩阵,可以根据其存储方式进行重排。例如: >> a=[1 2;3 4;5 6] a =

1 2 3 4 5 6 >> b=a(:) %变成一维列向量 b = 1 3

5 2 4 6

>> c=reshape(a,2,3) %变成2×3矩阵,注意变换前后的矩阵元素个数必须相等 c =

1 5 4 3 2 6

>> d=zeros(2,2) %先定义一个2×2的全0阵 d =

0 0 0 0

>> d(:)=a(3:6) %然后从a阵中取出4个元素,构成新矩阵 d =

5 4 2 6

矩阵元素求和

MATLAB提供的sum函数可以完成对矩阵元素按列求和。例如: >> a=[1 2 3;10 20 30;4 5 6] a =

1 2 3 10 20 30 4 5 6 >> sum(a) ans =

15 27 39

如果要按行计算元素和,可输入: >> sum(a')' ans = 6 60 15

为获取矩阵a的对角线上的元素,可采用diag函数 >> diag(a) ans = 1 20

6 因此计算矩阵a对角线上的元素之和,可输入: >> sum(diag(a)) ans = 27

● C=A*B完成矩阵A、B的线性代数积,

C(i,j)A(i,)B(k,j)k1n即

当A,B中任一个为标量时,直接将它乘到另一个矩阵的每个元素中。 ● C=A.*B是A,B对应元素相乘,即 C(i,j)=A(i,j)B(i,j)

● A/B完成矩阵右除,即它相当于A*inv(B)。

● C=A./B完成阵列右除,即C(i, j)=A(i, j)/B(i, j)。

●A\\B完成矩阵左除。当A为方阵时,相当于inv(A)*B,因此X=A\\B是线性方程Ax=B的解(利用高斯消元法求解)。

● C=A.\\B完成阵列左除,即C(i, j)=B(i, j)/A(i, j)。

eps

功能:浮点数相对精度。 格式:eps 说明:

eps可得到从1.0到下一个浮点数之间的距离,它可用作许多函数(如pinv、rank)的缺省容许值。例如: >> eps ans =

2.2204e-016

2.reshape

功能:阵列重新排列。 格式:

B=reshape(A,m,n) B=reshape(A,[m n p …]) B=reshape(A,m,n,p,…) B=reshape(A,siz)

1】figure命令

• 格式:figure 或 figure(N)

• 功能:创建一个图形窗口。使编号为N的图形窗口成为当前图形窗口,即图形窗口

处于可视状态。如果窗口N不存在,则将创建一个句柄为N的图形窗口

【2】clf命令

• 格式:clf

• 功能:清除当前图形窗口中的所有的内容 例

>> x=-pi:pi/10:pi; >> y=sin(x); >> plot(x,y)

>>clf

【3】close命令

• 格式一:close

• 功能: 关闭当前图形窗口

• 格式二: close (N)

• 功能: 关闭指定编号N的图形窗口

• 格式三:close all

• 功能: 关闭所有图形窗口

• 绘制函数——plot函数

• 函数能够将向量或者矩阵中的数据绘制在图形窗体中,并且可以指定不同的

线型和色彩

• 同一个plot函数可以一次绘制多条曲线

• 基本语法格式

• 绘制一条曲线

• plot(x, y, ’color_linestyle_marker’)

• 绘制多条曲线

• plot(t,[y1,y2,…])

• plot(x1,y1,’clm1’,x2,y2,’clm2’, ……)

设置曲线的样式属性

 使用命令grid,可以将图形窗体的轴在有网格线和无网格线之间切换  grid on——图形窗体的轴显示坐标网格线 grid off——图形窗体的轴不显示坐标网格线

使用命令hold,可以将图形窗体在锁定状态与非锁定状态之间进行切换

– hold on——图形窗体处于锁定状态

• 可以向已经存在曲线的图形窗体中增加曲线

– hold off——图形窗体处于非锁定状态

• 任何绘图操作都将清除当前图形窗体已经绘制的内容

• (1)sym函数

• sym函数用来建立单个符号量,例如,a=sym('a')建立符号变量a,此后,用户可

以在表达式中使用变量a进行各种运算。

(2)syms函数

   

syms函数的一般调用格式为: syms var1 var2 … varn

函数定义符号变量var1,var2,…,varn等, 用这种格式定义符号变量时不要在变量名上加字符分界符('),变量间用空格而不要用逗号分隔。

 基础运算符: +,-,*, /等 M文件

用MATLAB语言编写的程序,称为M文件。

M文件可以根据调用方式的不同分为两类:脚本文件(命令文件)(Script File)和函数文件(Function File)

脚本文件:将原本要在MATLAB环境下直接输入的多条语句,存放为.m后缀的文件,在命令行键入文件名,替代多条语句,一次执行成批命令。 函数文件:以固定格式书写的程序代码,

第一行是函数定义行。和C语言,Fortran等语言程序一样。

1.3 M文件的格式 命令文件 — 简单的m文件

命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。

 命令文件格式

 包括两部分:注释文件和程序文件

函数m文件的调用

函数调用的一般格式是:

[输出实参表]=函数名(输入实参表)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务