我是靠谱客的博主 务实咖啡,最近开发中收集的这篇文章主要介绍Matlab 常用命令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 通过语句和函数建立矩阵

t=[0:0.1:5]  %产生从 0 到 5 的行向量,元素之间间隔为 0.1。

t=linspace(n1,n2,n)  %产生 n1 和 n2 之间线性均匀分布的 n 个数 (缺省 n 时,产生 100 个 数)。

t=logspace(n1,n2,n)  %在 n1 10 和 n2 10 之间按照对数距离等间距产生 n 个数(缺省 n 时,产 生 50 个数)。 

2 从外部纯文本文件导入矩阵

 a = load('data3.txt')  或者  a = load('data3.txt' )

3 特殊矩阵

1.单位矩阵

eye(m)  %生成 m 阶单位阵。

eye(m,n)  %生成 m×n 矩阵,其中得到一个可允许的最大单位矩阵而其余处补 0。

eye(size(a))  %生成与矩阵 a 同样大小的单位矩阵。

2.全部元素为 1 的矩阵

ones(n)  %生成全部元素为 1 的 n 阶方阵。

ones(size(a))  %生成与矩阵 a 同样维数的全部元素为 1 的矩阵。

ones(m,n)  %生成全部元素为 1 的 m×n 矩阵。

3.全部元素为 0 的矩阵 zeros(n)  %生成全部元素为 0 的 n 阶方阵。

zeros(m,n)  %生成全部元素为 0 的 m×n 矩阵。

4.空矩阵 空矩阵是一个特殊矩阵,这在线性代数中是不存在的。例如 a=[ ]

矩阵 a 在工作空间之中,但它的大小为零。通过空矩阵的办法可以删除矩阵的行与列。

例如 b(:,3)=[]  这样就删除了所有行的第3列元素 。  

5.随机数矩阵(这个比较常用) 

rand(m,n)  %产生 m×n 矩阵,其中的元素是服从[0,1]区间上均匀分布的随机数。

randi([imin,imax],m,n)  %生成 m×n 矩阵,其中的元素为[imin,imax]区间上的随机整数。
 normrnd(mu,sigma,m,n)  %产生 m×n 矩阵,其中的元素是服从均值为 mu,标准差为 sigma 的正态分布的随机数。 
randn(m,n)  %产生均值为 0,方差为 1 的正态分布的 m×n 随机数矩阵。

exprnd(mu,m,n)  %产生m×n矩阵,其中的元素是服从均值为mu的指数分布的随机数。

poissrnd(mu,m,n)  %产生 m×n 矩阵,其中的元素是服从均值为 mu 的泊松(Poisson) 分布的随机数。

unifrnd(a,b,m,n)  %产生 m×n 矩阵,其中的元素是服从区间[a,b]上均匀分布的随机数。
mvnrnd(mu,sigma,n)  %产生 n 对均值向量为 mu,协方差矩阵为 sigma 的多维正态分布 的随机数。

randperm(n)产生 1 到 n 的一个随机全排列。 perms([1:n])产生 1 到 n 的所有全排列

编写表示 y = x^{2} + 2x + 3 的 MATLAB 函数,并计算在 x = [-6,6] 处的函数值。 

函数举例 : 

function y=myfun1(x);

y=x.^2+2*x+3; 

clc, clear %清屏并清理内存空间

x=-6:6; y=myfun1(x) 

 匿名函数 : 

y = @(x) x.^2 +2*x +3 ; 

x0 = -6:6 ; y0 = y(x0) 

(二分法) 求方程的根   x^{3}+1.1 x^{2}+0.9 x-1.4=0 

clc, clear ; 
fx = @(x) x.^3 + 1.1*x.^2 +0.9*x -1.4 ; 
a = 0 ; b  = 1 ; 
c = (a+b) /2 ; 
while abs(b-a) >0.0001;
    if fx(a)*fx(c) >0 
        a = c ; 
    else
        b = c ; 
    end
    c = (a+b) /2 
end

直接调用 MATLAB 工具箱函数的程序如下:

clc, clear %清屏和清理内存空间 fx=@(x)x.^3+1.1*x.^2+0.9*x-1.4;  %定义匿名函数

x1=fsolve(fx,0)  %调用工具箱的命令

x2=fzero(fx,0)  %调用工具箱的另一个命令 

 

 

MATLAB 绘图命令 

二维绘图命令 plot 为了适应各种绘图需要,提供了用于控制线色、数据点和线型的 3 组基本参数。它的使用格式如下: plot(x,y,’color_point_linestyle’)  .

字符串‘color_point_linestyle’完成对线色、数据点和线型 3 个参数的设置,这 3 个参数的 控制没有先后次序。线色(r-red,g-green,b-blue,w-white,k-black,y-yellow),数据点(., o,x,+,*,S,H,D,V,^,>,<,p)与线型(-,-.,--,:)都可以根据需要适当选择。
 subplot 命令使得在一个屏幕上可以分开显示 n 个不同坐标系,且可分别在每一个坐标 系中绘制曲线。其命令格式如下:          subplot(r,c,p)   

表示把屏幕分成 r 行、c 列个子窗口,即 r×c 个子窗口,激活 p 号子窗口,窗口的排列次序 是逐行排列的

例 3.5  分别用 plot,fplot,ezplot 画出抛物线 

clc, clear x=-6:0.6:6;

y=x.^2; subplot(141), plot(x,y)

 

yy=@(x)x.^2;  %定义抛物线的匿名函数

subplot(142), fplot(yy,[-6,6])

subplot(143), ezplot(yy,[-6,6])

subplot(144), ezplot('y=x^2',[-6,6]) %符号函数画图 

画出   y=frac{8}{x^{2}+4}

clc, clear, close all %关闭所有的图形窗口

f2=@(x)8./(x.^2+4); fplot(f2,[-6,6])

figure, ezplot('y=8/(x^2+4)',[-6,6,0,2]), title('') 

 图形标识

MATLAB 允许对图形对象进行文字标注,即图形标识. 常用的图形标识命令有:

title('s')  %添加图形标题;

xlabel('s')  %横坐标命名;

ylabel('s')  %纵坐标命名;

text(x,y, 's')  %在位置(x,y)处添加说明文字.  

命令 legend('s1', 's2',…, 'Location', 'Location 参数值') 

 

 例 : 画出 y=2 cos x, quad y=sin (2 x) 的图像

 

clc , clear ,close all  ; 
x =-6:0.1:6 ; 
y1 = 2*cos(x) ;
y2 = 2*sin(2*x) ;
plot(x,y1,'-r'), hold on ; % 图像保持
plot(x,y2,'P-') ; 
legend('余弦曲线','正弦曲线','Location','best') 

三维画图命令  

MATLAB 也提供了一些三维基本绘图命令,如三维曲线命令 plot3,三维网格图命令 mesh 和三维表面图命令 surf。

plot3(x,y,z)通过描点连线画出曲线,这里 x,y,z 都是 n 维向量,分别表示该曲线上点集的 横坐标、纵坐标、竖坐标。

命令 mesh(x,y,z)画网格曲面. 这里 x,y,z 分别表示数据点的横坐标、纵坐标、竖坐标,如 果 x 和 y 是向量,x 是 m 维的向量,y 是 n 维的向量,则 z 是 n×m 的矩阵. x,y,z 也可以都是 同维数的矩阵.

命令 mesh(x,y,z)将该数据点在空间中描出,并连成网格。 命令 surf(x,y,z)画三维表面图,这里 x,y,z 分别表示数据点的横坐标、纵坐标、竖坐标.  已知曲线或曲面的函数关系,提倡使用 ezplot3,ezmesh,ezsurf 等命令画图。 

clc,clear ,close all ; 
t = 0:0.01:100 , x = t.*cos(t) ; y = t.*sin(t) ; 
plot3(x,y,t) ;

椭圆锥面   :   frac{x^{2}}{4}+frac{y^{2}}{2}=z^{2} 

>> x = @(t,z) 2*z.*cos(t); 
>> y = @(t,z)sqrt(2)*z.*sin(t) ; 
>> z = @(t,z)z ; 
>> ezsurf(x,y,z,[0,2*pi,-6,6])

莫比乌斯带 : 

        left{begin{array}{l}{x=left(2+frac{s}{2} cos frac{t}{2}right) cos t} \ {y=left(2+frac{s}{2} cos frac{t}{2}right) sin t} \ {z=frac{s}{2} sin frac{t}{2}}end{array}right.

 0leqslant tleqslant 2pi ,-1 leqslant s leqslant 1

clc, clear 
x=@(s,t)(2+s/2.*cos(t/2)).*cos(t); 
y=@(s,t)(2+s/2.*cos(t/2)).*sin(t);
z=@(s,t)s/2.*sin(t/2); 
ezmesh(x,y,z,[-1,1,0,2*pi]), title('')
view(-40,60) 

 

最后

以上就是务实咖啡为你收集整理的Matlab 常用命令的全部内容,希望文章能够帮你解决Matlab 常用命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部