当前位置:首页 > Matlab 入门教程
关于结构数组有如下函数: 函数名 作用
struct 生成和转换为结构数组
fieldnames 查询结构数组的属性名 getfield 查询结构数组的属性值 setfield 设置结构数组的属性值 rmfield 删除属性
-295-
isfield 检查是否为数组的属性 isstruct 检查数组是否为结构型 ⑧ 细胞数组
细胞数组也是MATLAB 里的一类特殊的数组。在MATLAB 里,由于有细胞数组这个数 据类型,才能把不同类型、不同维数的数组组成为一个数组。
细胞数组的每一个元素可为类型不同、维数不同的矩阵、向量、标量或多维数组, 所有元素用大括号括起来。如矩阵A=[1 2 3 4;2 3 4 5;3 4 5 6],则命令 c={A,sum(A),sum(sum(A))} 得到一个1× 3的细胞数组。 关于细胞数组有如下函数: 函数名 作用
celldisp 显示细胞数组的内容 cell 生成细胞数组
cellplot 用图形方式显示细胞数组 num2cell 把数值型转换为细胞型 deal 输入和输出的匹配
cell2struct 把细胞数组转换为结构数组 struct2cell 把结构数组转换为细胞数组
iscell 检验数组是否为细胞型 i)细胞数组的生成
有两种方法可以生成细胞数组:用赋值语句直接生成;先用cell 函数预分配数组, 然后再对每个元素赋值。
有两种方法可对元素赋值:一种方法采用数组元素的下标赋值。下面四句命令将建 立一个2× 2的细胞数组。 A(1,1)={[1:5;6:10]}; A(1,2)={'Anne cat'}; A(2,1)={3+7i};
A(2,2)={0:pi/10:pi};
在大括号中,逗号或者空格表示每行元素之间的分割,分号表示不同行之间的分割。 另一种方法则把细胞数组的元素用大括号括起来,而所赋的值采用其它数组的形 式。例如下面四句生成的细胞数组和上面所生成的完全一样。 A{1,1}=[1:5;6:10]; A{1,2}='Anne cat'; A{2,1}=3+7i;
A{2,2}=0:pi/10:pi; 命令
B=cell(3,4)
创建一个3× 4的细胞矩阵。
ii)细胞数组内容的查看
对于上面建立的数组A,在Matlab 命令窗口键入变量名A,将显示数组的简要信息。 函数celldisp 用来显示细胞数组的每个元素的值。函数cellplot 将画出细胞数组 的每个元素的结构图。
当给已经定义的细胞数组下标范围外的元素赋值时,Matlab 自动扩维,对于没有
-296-
赋值的元素,赋值为空矩阵。
7. 数学运算与函数
① 基本代数运算操作 +,-,*,\\,/,^,
② 矩阵运算函数:求行列式(det),矩阵求逆(inv),求秩(rank),求迹(trace), 求模(norm),d=eig(A)求矩阵A 的特征值,[v,d]=eig(A)求矩阵A 的特征向量和特征 值,这里v 的列向量是对应的特征向量。 矩阵基本运算:
A\\B, B/A, A.*B, A./B, A.\\B, A.^B。
③ 基本数学函数
常用的数学函数有sin,cos,tan,abs,min,sqrt,log,log10,sign,asin, acos,atan,max,sum,exp,fix 等。具体使用方法请参看帮助help。
常用的矩阵函数有expm,logm,sqrtm 和funm,funm 函数可计算任何一个基本数 学函数的矩阵函数。它可以表示为 fa=funm(a,'fun')
式中,fun 可以是任意一个基本函数,如sin,cos,log10 等。 ④ 多项式
任意多项式都可以用一个行向量来表示, 即n 维的向量a 表示多项式
y(x) = a(1)xn?1 + a(2)xn?2 + + a(n ?1)x + a(n) L ,反过来,任意一个向量就可以作
为多项式。 例如:
p=[1 –6 11 -6]; poly2sym(p,’x’) ans =
x^3-6*x^2+11*x-6
求s3 + 2s2 + 3s + 4的根可用如下命令。 A=[1 2 3 4];roots(A) i) poly 函数
p=poly(A),A 是一个n × n的矩阵时,此函数返回矩阵A 的特征多项式p,p是n +1 维向量;A 是向量时,此函数返回以向量中的元素为根的多项式。 ii) 多项式的数组运算
y=polyval(p,x) 计算多项式在x 处的值,x 可以是矩阵或向量,此时函数计算多
项式在x 的每个元素处的值。
iii) 多项式的矩阵运算
y=polyvalm(p,x) 相当于用矩阵x 代替多项式的变量来对矩阵而不是对数组进行 运算,x 必须是方阵。例如:
? ?? ? ? ?? ? = 3 4 1 2
A , p(A) = A2 + 3A + 2I
可采用如下的命令进行计算 p=[1 3 2];
a=[1 2; 3 4]; polyvalm(p,a)
iv) 多项式的乘法和除法运算
w=conv(u,v) 此函数求多项式u 和v 的乘积,即求向量u 和v 的卷积。如果 m=length(u),n=length(v),则w 的长度为m+n-1。
-297-
[q,r]=deconv(u,v) 此函数表示多项式u 除以多项式v 得到商多项式q 和余数多项 式r,如果r 的元素全部为零,则表示多项式v 可以整除多项式u。 8. 绘图命令
① 二维图形
二维绘图的基本命令有plot,loglog,semilogx,semilogy 和polar。它们的使 用方法基本相同,其不同特点是在不同的坐标中绘制图形。plot 命令使用线性坐标空 间绘制图形;loglog 命令在两个对数坐标空间中绘制图形;而semilogx(或semilogy) 命令使用x 轴(或y 轴)为对数刻度,另外一个轴为线性刻度的坐标空间绘制图形;polar 使用极坐标空间绘制图形。
二维绘图命令plot 为了适应各种绘图需要,提供了用于控制线色、数据点和线型 的3 组基本参数。它的使用格式如下: plot(x,y,’color_point_linestyle’)
该命令是绘制y 对应x 的轨迹的命令。y 与x 均为向量,且具有相同的元素个数。
用字符串‘color_point_linestyle’完成对上面3 个参数的设置。线色(r-red,g-green, b-blue,w-white,k-black,i-invisible,y-yellow),数据点(.,o,x,+,*,S, H,D,V,^,>,<,p)与线型(-,-.,--,:)都可以根据需要适当选择。 当plot(x,y)中的x 和y均为m× n矩阵时,plot 命令将绘得n条曲线。 plot(t,[x1,x2,x3])在同一坐标轴内同时绘制三条曲线。
如果多重曲线对应不同的向量绘制,可使用命令 plot(t1,x1,t2,x2,t3,x3)
式中x1 对应t1,x2 对应t2 等等。在这种情况下,t1,t2 和t3 可以具有不同的元
素个数,但要求x1,,x2 和x3 必须分别与t1,t2 和t3 具有相同的元素数量。
subplot 命令使得在一个屏幕上可以分开显示n 个不同坐标系,且可分别在每一个 坐标系中绘制曲线。其命令格式如下: subplot(r,c,p)
该命令将屏幕分成r*c,而p 表示在第几个窗口。窗口的排号是从左到右,自上而下。 在图形绘制完毕后,执行如下命令可以再在图中加入题目、标号、说明和分格线等。 这些命令有title,xlabel,ylabel,text,gtext 等。它们的命令格式如下: title(‘My Title’),xlabel(‘My X-axis Label’),ylabel(‘My Y-axis Label’),
text(x,y,'Text for annotation'),gtext('Text for annotation'), grid
gtext命令是使用鼠标器定位的文字注释命令。当输入命令后,可以在屏幕上得到 一个光标,然后使用鼠标器控制它的位置。按鼠标器的左键,即可确定文字设定的位置。 hold on 是图形保持命令,可以把当前图形保持在屏幕上不变,同时在这个坐标
系内绘制另外一个图形。hold 命令是一个交替转换命令,即执行一次,转变一个状态 (相当于hold on、hold off)。
Matlab可以自动选择坐标轴的定标尺度,也可以使用axis命令定义坐标轴的特殊 定标尺度。其命令格式如下:
axis([x-min,x-max,y-min,y-max])
axis 命令的另一个作用是控制纵横尺度的比例。例如,输入axis(‘square’)后,可得 到一个显示方框,此时再在该框内绘制一个圆形时(如:plot(sin(x),cos(x)),在屏 幕上可以看到一个圆(一般情况下,由于屏幕的不规则原因,只能看到一个椭圆)。再 次输入axis(‘normal’)命令,屏幕返回到一般状态。 例
x=0:0.25:5;
-298-
y1=x.^0.1; y2=x.^0.5; y3=x.^0.8; y4=x.^1.5;
t=0:0.001:2*pi;
hold on
plot(3*cos(t),3*sin(t)) plot(x,y1,'bo',x,y2,'rH-') plot(x,y3,'gp--')
plot(x,y4,'mx-.')
title('My Title'),xlabel('My X-axis Label'),ylabel('My Y-axis Label')
text(2,8,'Text for annotation') gtext('Text for annotation'),grid 结果如图所示:
-3 -2 -1 0 1 2 3 4 5 -4 -2 0 2
共分享92篇相关文档