matlab画图
- 通过指定要绘制函数的变量
x
的值的范围来定义x
。 - 定义函数,
y = f(x)
- 调用
plot
命令,如下:plot(x,y)
以下示例将演示该概念。下面绘制x
的值范围是从0
到100
,使用简单函数y = x
,增量值为5
。
创建脚本文件并键入以下代码 -
x = [0:5:100];
y = x;
plot(x, y)
执行上面示例代码,得到以下结果 -
下面再来一个例子来绘制函数y = x^2
。 在这个例子中,将绘制两个具有相同函数的图,但是在第二次,将减小增量的值。请注意,当减少增量时,图形变得更平滑。
创建脚本文件并键入以下代码 -
x = [1 2 3 4 5 6 7 8 9 10];
x = [-100:10:100];
y = x.^2;
plot(x, y)
MATLAB
执行上面示例代码,得到以下结果 -
更改代码,减少增量为2
-
在图上添加标题,标签,网格线和缩放
MATLAB允许沿x
轴和y
轴,网格线添加标题,标签,并且还可以调整轴来绘制图形。
xlabel
和ylabel
命令沿x
轴和y
轴生成标签。title
命令用于在图表上设置标题。grid on
命令用于将网格线放在图形上。axis equal
命令允许生成具有相同比例因子的绘图和两个轴上的空格。axis square
命令生成一个方形图。
示例
创建脚本文件并键入以下代码 -
x = [0:0.01:10];
y = sin(x);
plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),
grid on, axis equal
MATLAB
MATLAB生成以下图表 -
在同一个图上绘制多个函数
可以在同一个图上绘制多个图形。以下示例演示了这一概念 -
示例
创建脚本文件并键入以下代码 -
x = [0 : 0.01: 10];
y = sin(x);
g = cos(x);
plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')
MATLAB
MATLAB生成以下图表 -
在图上设置颜色
MATLAB提供了八个基本的颜色选项来绘制图形。 下表显示了颜色及其代码 -
代码 | 颜色 |
---|---|
w | White |
k | Black |
b | Blue |
r | Red |
c | Cyan |
g | Green |
m | Magenta |
y | Yellow |
示例
下面我们来绘制两个多项式的图形 -
创建脚本文件并键入以下代码 -
x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')
MATLAB
执行上面示例代码,MATLAB生成以下图表 -
设置轴刻度
axis
命令用来设置轴刻度。可以通过以下方式使用axis
命令为x
和y
轴提供最小和最大值:
axis ( [xmin xmax ymin ymax] )
MATLAB
示例
创建脚本文件并键入以下代码 -
x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -1 1])
MATLAB
执行上面示例代码,MATLAB生成以下图表 -
生成子图
当在同一个图中创建一个绘图数组时,这些图中的每一个图称为子图。 subplot
命令用于创建子图。
该命令的语法是 -
subplot(m, n, p)
MATLAB
其中,m
和n
是绘图数组的行数和列数,p
表示放置指定图形的位置。
使用subplot
命令创建的每个曲线都可以有自己的特点。 以下示例演示了这一概念 -
示例
下面示例将生成两个区域块 -
创建脚本文件并键入以下代码 -
x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,1)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,2)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])
MATLAB
执行上面示例代码,得到以下结果 -
绘制条形图
bar
命令绘制二维条形图,下面举个例子来演示如何使用。
示例
假设有10
名学生,这些学生某次考试获得分数是:75,58,90,87,50,85,92,75,60和95,使用这此分数来绘制条形图如下。
创建脚本文件并键入以下代码 -
x = [1:10];
y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];
bar(x,y), xlabel('Student'),ylabel('Score'),
title('First Sem:')
print -deps graph.eps
MATLAB
运行文件时,MATLAB显示以下条形图 -
绘制等高线
两个变量的函数的轮廓线是一个曲线,函数有一个恒定值。等高线用于通过连接等于高于某一水平的点(如平均海平面)来创建轮廓图。
MATLAB提供了绘制轮廓图的contour
函数。
示例
下面演示如何生成一个轮廓图,显示给定函数g = f(x,y)
的轮廓线。该函数有两个变量。 所以,必须生成两个独立的变量,即两个数据集x
和y
。 这可以通过调用meshgrid
命令完成。
meshgrid
命令用于生成在每种情况下给出x
和y
范围以及增量规范的元素矩阵。
绘制函数g = f(x,y)
,其中-5≤x≤5
,-3≤y≤3
。对于这两个值,递增0.1
。变量设置为 -
[x,y] = meshgrid(–5:0.1:5, –3:0.1:3);
MATLAB
最后,需要分配这个函数。使用函数为:x^2 + y^2
(注:x
和y
的平方之和)
创建脚本文件并键入以下代码 -
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
contour(x,y,g) % call the contour function
print -deps graph.eps
MATLAB
执行上面示例代码,得到以下结果 -
下面再修改一下代码,使地图上变得有数据标识 -
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
[C, h] = contour(x,y,g); % call the contour function
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
print -deps graph.eps
MATLAB
执行上面示例代码,得到以下结果 -
三维图
三维图基本上显示的是由两个变量g = f(x,y)
中的函数定义的表面。
像之前一样,要定义g
,首先使用meshgrid
命令在函数的域上创建一组(x,y)
点。 接下来,分配函数本身。 最后,使用surf
命令创建一个曲面图。
以下示例演示了这一概念 -
示例
为以下函数创建一个3D曲面图 -
创建脚本文件并键入以下代码 -
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
MATLAB
运行文件时,MATLAB显示以下三维图 -
也可以使用mesh
命令生成三维表面。 但是,surf
命令显示连接线和表面的颜色,而mesh
命令创建一个线框表面,带有连接定义点的彩色线。
相关阅读
下面是Matlab官方列出来的Tex代码列表,包含了绝大部分的希腊字母和数学符号。 Character Sequence Symbol Character Sequence
先附上自己认为写的比较好的一篇博客。 https://www.cnblogs.com/duye/p/9384821.html 同时要指出自己博文的问题:对于Matlab中can
add_axes新增子区域 add_axes为新增子区域,该区域可以座落在figure内任意位置,且该区域可任意设置大小可以用来做一些子图,图中图考
【需要注意】MATLAB函数不能先定义后调用!如下为先定义后调用,结果报错:错误: 文件:justTest2.m 行:88 列:5脚本中的函数定义必须出
plot二维线图全页折叠#语法plot(X,Y)plot(X,Y,LineSpec)plot(X1,Y1,…,Xn,Yn)plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn)plot(Y)p