概述
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 的所有全排列
编写表示 的 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)
(二分法) 求方程的根
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]) %符号函数画图
画出
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 参数值')
例 : 画出 的图像
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) ;
椭圆锥面 :
>> 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])
莫比乌斯带 :
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 常用命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复