Matlab-揭秘-Notes

第一章 MATLAB 环境

基本运算符号, 包括: +, -, *, /.

^.

赋值 =.

多个表达式卸载同一行, 用 ; 分隔表达式.

who 显示变量. whos 得到更多信息.

clear 清除变量.

行尾加 ... 可以续行.

MATLAB 默认精度为 short, 输出小数点后 4 位. 可用 format 命令修改:

1
format long

long 为十六位.

1
format bank

两位.

科学计数法:

1
format short e

返回最接近的比例式:

1
format rat

基本数学定义式

使用 $\pi$, 只需要输入 pi.

自然常数 $e$, 输入 exp(1).

得到平方根: sqrt().

自然对数: log(), 以 10 为底: log10().

三角函数和反三角函数: cos(), acos().

复数形式: z=x+yi

文件基础

% 是注释.

数组, 元素用 :; 分开: x = [1:2:3:4] ; y = exp(x), 输出为四个.

结束

输入 quit.

第二章 向量与矩阵

第三章 绘图与图形

2D 绘图基础

三个步骤:
1. 定义函数
2. 指定要绘制的函数图形的值范围
3. 调用 MATLAB 的 plot(x, y) 函数

指定函数的值的范围时, 需要指定增量. 格式:

1
[ start : interval : end ]

如:

1
2
3
x = [ 0:0.1:10 ];
y = cos(x);
plot(x, y)

每行用 ; 结尾可以抑制 MATLAB 的输出.

若要重新画图, 需要重新输入所有命令.

添加坐标轴标签

添加坐标轴标签, 使用 xlabelylabel:

1
2
3
x = [ 0:0.1:10 ];
y = cos(x);
plot(x, y), xlabel('x'), ylabel('cos(x)');

更多 2D 绘图选项

在图像正上方打印标题

在图像正上方打印标题, 使用 title 命令.

使用 fplot 可以避免如下报错:

1
2
??? Error using ==> mtimes
Inner matrix dimensions must agree.

fplot 格式: fplot('function string', [xstart, xend])

例:

1
fplot('exp(-2*t).*sin(t)', [0, 4]), xlabel('t'), ylabel('f(t)'), title('Name')

注意, 当一个函数是由两个或更多函数相乘构成, 需要在相乘时加上 “.” 来告诉 MATLAB 是对两个矩阵相乘. 即 .* 表示矩阵相乘.

给图像添加网格

使用 grid on:

1
plot(x,y), grid on

调整坐标轴

axis square 产生正方形图像.

axis equal 产生一个两坐标轴比例和间距都相同的图像.

1
plot(x,y), grid on, axis equal

在同一图像中显示多个函数

同样调用 plot(x,y) 函数, 两两成对, 后一个参数可表示曲线风格:

1
plot(t,f,t,g,'--')

风格包括:

  • 实线 -
  • 虚线 --
  • 虚点线 -.
  • 点线 .

添加图例

图例, 即告诉读者这个曲线是什么.

使用 legend 命令并跟在 plot(x,y) 之后:

1
legend('sinh(x)','cosh(x)')

如:

1
plot(x,y,x,z,'-.'), xlabel('x'), ylabel('Potential'), legend('sinh(x)','cosh(x)')

可用鼠标拖动图例.

修改曲线颜色

红色为 r (red), 蓝色为 b (blue):

1
plot(x,y,'r',x,z,'b')

或:

1
plot(x,y,'r',x,z,'b--')

有八种颜色:

设置坐标比例

调用 axis 命令. 格式为:

1
axis( [xmin xmax ymin ymax] )

如:

1
2
3
x = [0:0.01:5];
y = sin(2*x + 3);
plot(x,y), axis([0 5 -1 1])

将函数平方

使用 .^:

1
y = sin(5*x).^2;

子图

即一个图上显示多于一个图像.

使用 subplot(m,n,p) 命令. mn 告诉 MATLAB 产生的子图有 m 行和 n 列 (指窗格块). p 用来告诉 MATLAB 我们所要贴上去的某个已经绘制的图形窗口 (也就是说下一个绘制的图像是放在第几列).

如:

1
2
3
4
5
6
7
8
9
x = [0:0.01:5];
y = exp(-1.2*x).*sin(20*x);
subplot(1,2,1);
plot(x,y), xlabel('x'), ylabel('exp(-1.2*x).*sin(20*x)'), axis([0 5 -1 1])

y = exp(-2*x).*sin(20*x);
subplot(1,2,2)
plot(x,y), xlabel('x'), ylabel('exp(-2*x).*sin(20*x)'), axis([0 5 -1 1])

结果:

图像重叠和 linspace 命令

先绘制了一个图像, 又决定在同一个图形上再绘制另一个函数的图像.

linspace 命令产生数集, 格式:

1
x = linspace(a,b,n)

表示在 a 到 b 之间取 n 个点. 没有 n 时均匀取出 100 个.

如:

1
2
x = linspace(0,2*pi);
plot(x,cos(x))

同时绘制两个图像, 使用 hold on:

1
2
3
4
x = linspace(0,2*pi);
plot(x,cos(x))
hold on
plot(x, sin(x)), axis([0 2*pi -1 1])

极坐标和对数图像

离散数据绘图

使用 plot(x,y) 绘制一些离散数据图并用线连接起来.

先创建数组, 由于不是对连续函数进行建模, 因此没有必要指定增量.

1
2
x = [1:5];
y = [50, 98, 75, 80, 98];

用条形图绘制, 使用 bar(x,y) 函数.

绘制针头图, 使用 stem.


Matlab-揭秘-Notes
http://example.com/2022/10/15/Matlab-揭秘-Notes/
作者
Jie
发布于
2022年10月15日
许可协议