1).
>> x=-2*pi:0.1:2*pi; >> y1=sin(x);
>> y2=sin(x+pi/3)+2; >> y3=cos(x); >> plot(x,y1,'.-'); >> hold on
>> plot(x,y2,'.-') >> hold on
>> plot(x,y3,'.-') >> plot(x,y1,'.-'); >> hold on
>> plot(x,y2,'.-') >> hold on
>> plot(x,y3,'.-')
>> h=legend('sin($x$)','sin($x+\\frac{\\pi}{3}$)','cos($x$)') h =
159.0056
Warning: Unable to interpret TeX string \>> set(h,'Interpreter','latex') >> xlabel('$x$','Interpreter','latex') >> ylabel('$y$','Interpreter','latex') %添加函数图标及纵横坐标轴名称,如下图显示 >>
2).常用画图命令:
Surf(x,y,z)、ezsurf(z)、ezmesh(z)
%使用surf画图,要求想x,y,z是同维数的矩阵
%使用ezsurf和ezmesh时,曲面函数必须能写成显函数的形式,如Z?sin(xy)/(xy)
%可以使用@(x,y)+函数表达式 定义匿名函数,如z?@(x,y)sin(x*y)/(x*y) %surf(x,y,z,x); %设置图形颜色变化方向为沿x轴,此项可省,一般不要求。 图形属性: axis属性
Axis tight %将坐标轴减小到可能的最小尺寸 Axis equal %使x,y轴的刻度设置相同 Axis square %使图形长宽相同 Axis off %不显示坐标轴
Axis([x0 x1 y0 y1 z0 z1]); %手动改变轴的范围
View(n,m) %设定图形观察视角,n为在水平方向测量的角度,m为从水平面向上测量的仰俯角。
Subplot(n,m,x) %将图像窗口分为nxm个子窗口,当前指的是第x个,按行数。当要对第y个图做一定的设置时,先输入命令subplot(n,m,y),然后再输入要做的设置命令。
Legend(‘xxx’) %给图形设置图标,也可指定图标的位置,默认为右上角。 Text(x,y,‘xxx’) %给图像添加注释内容,注释位于图形中(x,y)处。 Gtext(‘xxx’); %给图像添加注释,位置随意,将十字光标点在哪儿就放哪儿。 delete(findobj('type','text')) %删除通过gtext()命令添加的注释内容 Close all %关闭所有图像窗口 Title(’xxx‘) %给图形添加标题
Material属性,设置曲面的材料属性,值有dull,shiny,metallic,该命令可结合用在surf,mesh,pcolor,fill,fill3等函数中。
Plotyy(x,y1,x,y2,’plot’) %在同一个图中画出两个图形,公用一个横轴,纵轴不同,分列两边,且纵轴刻度设置可不同,自动的。
Semilogx 和semilogy 表示横轴和纵轴采用对数坐标画出x-y的图形,用法为semilogx(x,y)和semilogy(x,y).
Loglog(x,y) %横纵轴均采用对数形式画出x-y图形
Grid on %打开网格,系统默认为grid off ,即关闭网格。 A=Complex(x,y) %产生复数A=x+yi Real(A)=x,imag(A)=y.
Fill(x,y,n) %产生一个有x,y坐标定义的填充颜色的图形,填充颜色根据n对色图进行索引确定。
light('Color',选项一,'Style',选项二,'Position',选项三),选项一为表示光的颜色的矩阵,取RGB三元组或相应的颜色字符。选项二可取为'infinite'和'local'两个值,分别表示无穷远光和近光。选项三为三维坐标点组成的向量形式[x,y,z]。对远光,它表示光穿过该点射向原点;对于近光,它表示光源所在位置。假如函数不包含任何参数,则采用缺省设置:白光、无穷远光、穿过(1,0,1)射向坐标原点。一般后两个参数可省,默认。--例: [x,y,z]=peaks; surf(x,y,z); shading interp;
light('Color',[1 0 1],'Style','local','Position',[-4,-4,10]); %此命令表示在点[-4,-4,10]处有一处品红色光源
例1.画出椭圆柱面图:
?x?3cos?,??y?2sin?, ??z?t,t?R,
编写的matlab程序如下:
x?@(a,t)3*cos(a);y?@(a,t)2*sin(a);z?@(a,t)t; ezmesh(x,y,z)%定义匿名函数 %因为没能写成显函数的
形式,所以调用命令函数ezmesh时使用格式ezmesh(x,y,z),当能写成显函数时可以直接调用格式ezmesh(z)。
例2.绘制二元函数三维表面图:
z? 程序如下:
sin(xy)xy
[x,y]?meshgrid([?3:0.2:3]); z?@(x,y)sin(x*y)/(x*y);ezmesh(z)Meshgrid的用法举例:两种情况
%产生所定范围内的二维点阵
%或用ezsurf(z),所画图像颜色效果不同
3)积分命令:
a).Int---符号积分法
应用: int(s)符号表达式s的不定积分.
int(s,v)符号表达式s关于变量v的不定积分.
int(s,a,b)符号表达式s的定积分, a,b分别为上﹑下限. int(s,v,a,b)符号表达式s关于变量v从 a到b的定积分. 当int求不出符号解,会自动转求数值解.
注:使用符号积分时需结合使用syms--符号定义命令,例如声明两个符号变量 x,y,matlab语句格式为:Syms x,y;
例3.求函数不定积分:sin(x)?cos(2*x)?exp(x.^2) Matlab程序为:
symsx; A?sin(x)?cos(2*x)?exp(x.^2);%函数A%对函数A求关于x的导数并赋给z
z?int(A) b).一重数值积分命令:quad(f,a,b)、quadl(f,a,b) 其中f为积分函数,a、b为积分上下限。 例4.求数值积分
?1?012x?3x2
Matlab程序如下:
f?@(x)(2*x?3)./(1?x.^2); I?quad(f,0,1)或用I=quadl(f,0,1),结果的精度不同
c).二重数值积分命令:dblquad(f,a,b,c,d)
其中a,b为外重积分限,c,d为内重积分限,f为积分函数。 d).三重数值积分命令:triplequad(f,a,b,c,d,e,f)
其中a,b为外重积分限,c,d为中间重积分限,e,f为内重积分限,f为积分函数。 4).几个特殊矩阵:
eye(n):n阶单位矩阵; Ones(n):n阶1矩阵; Zeros(n):n阶0矩阵;
5).矩阵运算:
乘法:格式 a*b; %注意和数组矩阵乘法区别a.*b;注,乘以逆和标准除法等同右乘,后除可抵消对矩阵做的左乘效果。
求逆:格式 inv(a)和运算符向后除\\,例inv(a)*c<=>a\\c;注,c/a表示( 指数运算:
k-kC'\\B)'
'A和A,其中k为正数,分别表示A连乘K次,和???
rot90(A,n):将矩阵A逆时针旋转n个90度 tril(A):保留A的下三角并将上三角填充为0.
unit8,unit16(A):将A中数据转化为固定位数的无符号整数类型。
6)几个命令函数:
find():查找命令;
例:a(find(a==0))=inf ,表示把a矩阵中的0元素全部替换为无穷。
Min():查找最小命令;
Numel(a),计算矩阵a的元素个数;
[y n]=Max(x,[],2),查找最大元素及其位置,返回值y为最大值,n为对应位置 7)Matlab与记事本的数据交互:
A).matlab读入记事本文件中的数据:
如果记事本文件*.txt中内容全部为数值是,可直接调用命令A=load(‘*.txt’),由此matlab中会生成一个数值矩阵A。
如果文件中不全为数值,则不能用load命令,应该用[name,type,value]textread(‘*.txt’,‘%s %n %f’,2),此格式代表文件中第一列为字符串,第二列为整数,第三列为浮点数,读取命令只读取文件中的前两行,生成三个列矩阵name type value,具体情况具体分析。
注:要求所读取的txt文件的位置必须在matlab中“当前目录”中包含,如当前目录为:D:\\temp\\work,则txt文件必须保存在该路径下,否则命令执行出错。 Fscanf():更强大的一个读取命令。
B).将matlab数据写入记事本文件中:
如果只想保存数值数据,则可调用save命令,格式为:save filename a b ...; 代表把变量a ,b ...等值存入名为filename的.mat格式的文件中,该文件的路径为“当前目录”。且该文件只能用matlab打开,其他软件无法打开。
如果想把各种数据保存为.txt文件,则应该使用fprintf命令,格式为: Fid=fopen(‘file.txt’,wt); %打开一个文件,并返回一个指标fid Fprintf(fid,’数据表1\\n’); %可省
Name=’sally’;types=1;x=3;y=4; %赋值一次
Fprintf(fid,’%s type%n %f %f’,name,types,x,y); %写入一次 Name=’jim’;types=2;x=1;y=3; %第二次赋值
Fprintf(fid,’%s type%n %f %f’,name,types,x,y); %第二次写入 Fclose(fid); %关闭文件 则生成一个txt文件,内容为: 数据表1 Sally 3 4 Jim 1 3 8)数据拟合:
A).多项式拟合:
指令拟合:p=polyfit(x,y,n); %返回系数矩阵p;
Yi=Polyval(p,xi); %计算多项式的拟合函数值 用命令poly2sym(p)输出拟合函数表达式
图形窗口拟合:先画出散点图,plot(x,y,’r*’);然后在图形窗口上点击Tools下的basic fitting,打开拟合对话框进行操作。
B).指定函数类型拟合:
假设根据散点图知道拟合函数类型为f(x)形式的,则可利用.m进行拟合。 编写m文件: