metlab快速学习

目录

注释

求一元二次方程的根

续行符 :...

建立矩阵

 metlab基本运算

字符串

矩阵函数 

 数据的输入

 数据的输出

程序的暂停

选择结构

循环结构

函数

 Metlab绘图

绘制图形的辅助操作

三维曲线

 三维曲面

图形修饰处理   交互式绘图工具

注释

%注释一行

求一元二次方程的根

例 求解 x^2-3x+1=0的根

p=[1,-3,1];

x=roots(p)

续行符 :...

常见函数:

 single函数:将其他类型的数据转为单精度型

double函数:将其他类型的数据转为双精度型

real函数:求复数的实部

imag函数:求复数的虚部

sin(π/2)=sind(90)

abs函数:求实数的绝对值、复数的模、字符串的ascll码值

round:四舍五入

ceil:向上取整

floor:向下取整

fix:固定取靠近0的那个数

rem(a,b):求a%b的值

常用命令

who:查看当前变量

whos:详细查看当前变量 

edit 文件名:创建文件

建立矩阵

A=[1,2,3;4,5,6;7,8,9]

冒号表达式:t=初始值:步长:终止值

ex:t=0:1:5 

>>t= 0 1 2 3 4 5 

linspace(第一个元素,最后元素,元素总数)

ex:t=linspace(1,3,3)

>>t= 1 2 3

结构矩阵:结构矩阵元素.成员名=表达式

ex:a={1,'1',[1,1;1,1];2,'2',[2,2;2,2]}

 metlab基本运算

+(加)、-(减)、*(乘)、\(左除)、/(右除)、^(乘方)

点运算:

.*、./、.\、.^

两矩阵进行点运算是指它们的对应元素进行相关运算,要求矩阵同型。

例  当x=0.1、0.4、0.7、1时,分别求y=sin x cos x的值。
x=0.1:0.3:1;
y=sin(x).*cos(x)

关系运算

记住不等于是~=

逻辑运算

&、|、~

例  水仙花数是指各位数字的立方之和等于该数本身的三位正整数。求全部水仙花数。
m=100:999;
m1=rem(m,10);
m2=rem(fix(m/10),10);
m3=fix(m/100);
k=find(m==m1.*m1.*m1+m2.*m2.*m2+m3.*m3.*m3)
s=m(k)

字符串

矩阵函数 

zeros函数: 产生全0矩阵,即零矩阵。
ones函数:产生全1矩阵,即幺矩阵。
eye函数: 产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。
rand函数:产生(0, 1)区间均匀分布的随机矩阵。
randn函数: 产生均值为0,方差为1的标准正态分布随机矩阵。

魔方矩阵:t=magic(n)

n阶魔方阵由1,2,3, .. n2共n2个整数组成,且每行、每列以及
主、副对角线上各n个元素之和都相等。
n阶魔方阵每行每列元素的和为(1+2+3+...+ n2)/n= (n+n3)/2
n>2时有很多不同的n阶魔方阵,MATLAB函数magic(n) 产生-一个
特定的魔方阵。

范德蒙矩阵:f=vander(向量)

伴随矩阵:a=compan(矩阵)

diag(A):提取矩阵A的主对角线元素,产生一个列向量

diag(A,k):提取矩阵A的第k条主对角线元素,产生一个列向量

triu(A):提取矩阵A主对角线及以上的元素

triu(A,k):提取矩阵A第k条主对角线及以上的元素

tril是下三角,用法与triu相同

转置:矩阵A的转置:A.'

rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k=1时可以省略。

fliplr(A):对矩阵A实施左右翻转

filpud(A):对矩阵A实施上下翻转

inv(A):求方阵A的逆矩阵

det(A):求方阵A所对应的行列式的值

rank(A):求矩阵的秩

trace(A):求矩阵的迹

注:矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和

矩阵特征值的数学定义
设A是n阶方阵,如果存在常数λ和n维非零列向量x,使得等式Ax= λx
成立,则称λ为A的特征值,x是对应特征值λ的特征向量。

E=eig(A):求矩阵A的全部特征值,构成向量E。
[X, D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X
各列是相应的特征向量。

 数据的输入

A=input(提示信息,选项)

 数据的输出

disp(输出项)

程序的暂停

pause(延迟秒数)  强制中止程序的运行可用Ctrl+C命令 

选择结构

循环结构

for 循环变量=初值:步长:终值          while 条件

   循环体语句                                              循环语句

end                                                    end

函数

 例  编写函数文件,求半径为r的圆的面积和周长。
function [s,p]=fcircle(r)
s=pi*r*r;
p=2*pi*r;

 

例:

f=@(x,y) x^2+y^2

>>f(3,4)

>>ans=5 

函数的递归调用:

例  利用函数的递归调用,求n!。
函数文件fact.m如下:
function f=fact (n)
if n<=1
    f=1;
else
    f=fact (n-1)*n;    %递归调用求(n-1)!
end

 Metlab绘图

例  采用fplot函数绘制函数sin⁡(1/x)。
fplot(@(x) sin(1./x),[0,0.2], 'b')

绘制图形的辅助操作

1.图形标注
title (图形标题)
xlabel (x轴说明)
ylabel (y轴说明)
text(x,y,说明)
legend (图例1,图例2,...)

 2.坐标控制

 (1) axis函数
axis函 数的基本用法
axis ([xmin, xmax, ymin, ymax, zmin, zmax])

axis的其他用法
●axis equal: 纵、横坐标轴采用等长刻度
●axis square: 产生正方形坐标系(默认为矩形)
●axis auto: 使用默认设置
●axis off:取消坐标轴
●axis on:显示坐标轴
(2)给坐标系加网格、边框
grid on
grid off
grid
box on
box off
box

例  绘制sin(x)、sin(2x)、sin(x/2)的函数曲线并添加图形标注。
x=linspace(0,2*pi,100);
y=[sin(x); sin(2*x); sin(0.5*x)];
plot(x,y)
axis([0 7 -1.2, 1.2])
title('不同频率正弦函数曲线');
xlabel('Variable X');  ylabel('Variable Y');
text(2.5, sin(2.5), 'sin(x)');
text(1.5, sin(2*1.5), 'sin(2x)');
text(5.5, sin(0.5*5.5), 'sin(0.5x)');
legend('sin(x)','sin(2x)','sin(0.5x)')
grid on

 3.图形保持

hold on    hold off       hold

t = linspace(0,2*pi,100);
x = sin(t);  y = cos(t);
plot(x, y, 'b')
hold on;       
plot(2*x, 2*y, 'r--')
grid on
axis([-2.2 2.2 -2.2 2.2])
axis equal

 4.图形窗口的分割
子图:同一图形窗口中的不同坐标系下的图形称为子图。
subplot函数
subplot(m, n,p)
其中,m和n指定将图形窗口分成mXn个绘图区,p指定当前活动区。

划分2×2子图
subplot(2,2,1);
x=linspace(0,2*pi,60);
y=sin(x);
plot(x,y);
title('sin(x)');
axis ([0,2*pi,-1,1]);

划分多子图
x=linspace(0,2*pi,60);
subplot(2,2,1)    
plot(x,sin(x)-1);
title('sin(x)-1');axis ([0,2*pi,-2,0])
subplot(2,1,2)    
plot(x,cos(x)+1);
title('cos(x)+1');axis ([0,2*pi,0,2])
subplot(4,4,3)     
plot(x,tan(x));
title('tan(x)');axis ([0,2*pi,-40,40])
subplot(4,4,8)       
plot(x,cot(x));
title('cot(x)');axis ([0,2*pi,-35,35])

三维曲线

1. plot3函数
(1) plot3函数的基本用法
plot3(x,y,z)
其中,参数x、y、z组成一组曲线的坐标。
例  绘制一条空间折线。
x=[0.2, 1.8, 2.5];
y=[1.3, 2.8, 1.1];
z=[0.4, 1.2, 1.6];
plot3(x, y, z)
grid on
axis([0, 3, 1, 3, 0, 2]);

t=linspace(0, 10*pi, 200);
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;
subplot(1, 2, 1)
plot3(x, y, z)
grid on
subplot(1, 2, 2)
plot3(x(1:4:200), y(1:4:200), z(1:4:200))
grid on

 

 (2) plot3(x, y, z)函数参数的变化形式
plot3(X, Y, Z)
参数X、Y、Z是同型矩阵时,以X、Y、Z对应列元素绘制曲线,曲线条数等于矩阵列数。
参数X、Y、Z中有向量,也有矩阵时,向量的长度应与矩阵相符。


例 在空间不同位置绘制5条正弦曲线。
t=0:0.01:2*pi;
x=t;
y=[sin(t); sin(t)+1; sin(t)+2; sin(t)+3; sin(t)+4];
z=x;
plot3(x,y,z)

 

 (3)含多组输入参数的plot3函数
plot3(x1,y1,z1,x2,y2,z2,..,xn,yn,zn)
每一组x、y、z向量构成一-组数据点的坐标,绘制一条曲线。

例4  绘制三条不同长度的正弦曲线。
t1=0:0.01:1.5*pi;
t2=0:0.01:2*pi;
t3=0:0.01:3*pi;
plot3(t1,sin(t1),t1, t2,sin(t2)+1,t2,...
t3,sin(t3)+2,t3)

(4)含选项的plot3函数
plot3(x,y, z,选项)选项用于指定曲线的线型、颜色和数据点标记。
例  绘制空间曲线
t=0:pi/50:6*pi;
x=cos(t);
y=sin(t);
z=2*t;
plot3(x,y,z,'p')
xlabel('X'),ylabel('Y'),zlabel('Z');
grid on

 2. fplot3函数
fplot3 (funx,funy, funz, tlims)
其中,funx、 funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述, 默认为[-5, 5]。

xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt, yt, zt, [-12, 12], 'r-.')

 三维曲面

1.平面网格数据的生成
用矩阵X、Y分别存储每一个小矩形顶点的x坐标与y坐标,矩阵X、Y就是该矩形区域的xy平面网格坐标矩阵。
(1)利用矩阵运算生成

x=2:6;
y=(3:8)';
X=ones(size(y))*x;
Y=y*ones(size(x))

(2)利用meshgrid函数生成

(2)利用meshgrid函数生成。
[X, Y]=meshgrid(x, y);

其中,参数x、y为向量,存储网格点坐标的X、Y为矩阵。

 例  绘制空间曲线。
x = 2:6;
y = (3:8)';
[X, Y] = meshgrid(x, y);
Z = randn(size(X));
plot3(X,Y,Z)
grid on;

2.绘制三维曲面的函数
mesh函数和surf函数的调用格式:
mesh(x,y,z,c)
surf(x,y, z,c)
其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。c省略时,颜色的设定正比于图形的高度。
 

t = -2:0.2:2;
[X, Y] = meshgrid(t);
Z = X .* exp(-X.^2 - Y.^2);
subplot(1,3,1)
mesh(X,Y,Z);
subplot(1,3,2)
surf(X,Y,Z);
subplot(1,3,3)
plot3(X,Y,Z);
grid on

 

mesh函数和surf函数的其他调用格式:
mesh(z,c)
surf(z,c) 
当x、y省略时,z矩阵的第2维下标当作x轴坐标,z矩阵的第1维下标当作y轴坐标。

t=1:5;
z=[0.5*t;2*t;3*t];
mesh(z)


带等高线的三维网格曲面函数meshc
带底座的三维网格曲面函数meshz
具有等高线的曲面函数surfc
具有光照效果的曲面函数surfl

[x,y]=meshgrid(0:0.1:2,1:0.1:3);
z=(x-1).^2+(y-2).^2-1;
subplot(2,2,1);
meshc(x,y,z);title('meshc(x,y,z)')
subplot(2,2,2);
meshz(x,y,z);title('meshz(x,y,z)')
subplot(2,2,3);
surfc(x,y,z);title('surfc(x,y,z)')
subplot(2,2,4);
surfl(x,y,z); title('surfl(x,y,z)')

 

 3.标准三维曲面
(1) sphere函数
[x, y, z]=sphere (n)
产生3个(n+1)阶的方阵,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。
(2) cylinder函数
[x, y, z]=cylinder(R,n)
其中,参数R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。

例  用cylinder函数分别绘制柱面、花瓶和圆锥面。
subplot(1,3,1);
[x,y,z]=cylinder;
surf(x,y,z);
subplot(1,3,2);
t=linspace(0,2*pi,40);
[x,y,z]= cylinder(2+cos(t),30);
surf(x,y,z);
subplot(1,3,3);
[x,y,z]= cylinder(0:0.2:2,30);
surf(x,y,z);

例  用cylinder函数绘制两个相互垂直且直径相等的圆柱面的相交图形。
[x,y,z]= cylinder(1,60);
z=[-1*z(2,:);z(2,:)];
surf(x,y,z)
hold on
surf(y,z,x)
axis equal 

 (3) peaks 函数
peaks函数的调用格式:
peaks (n)                   p1=peaks(10) ;
peaks (V)                   p2=peaks ;             p3=peaks(- 3:0.2:3);
peaks (x, y)                [x, y]=meshgrid(-2:0. 1:2, 0:0. 1:5);
peaks                         p4=peaks(x, y);

4. fmesh函数和fsurf函数
用于绘制参数方程定义的曲面
fsurf (funx,funy, funz, uvlims)
fmesh (funx,funy, funz, uvlims)
其中,funx、funy、 funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。uvlims 为funx、funy和funz的自变量的取值范围,用4元向量[umin, umax,vmin,vmax]描述,默认为[-5,5,-5, 5]。
例 绘制螺旋曲面。
funx = @(u,v) u.*sin(v);
funy = @(u,v) -u.*cos(v);
funz = @(u,v) v;
fsurf(funx,funy,funz,[-5 5 -5 -2])
hold on
fmesh(funx,funy,funz,[-5 5 -2 2])
hold off

图形修饰处理   交互式绘图工具

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值