MATLAB作图教程
Matlab四位数据作图(Slice)

对如下数据,做出截面图,并按相应的颜色值设置数据;x y z s1 2 2 251 3 3 211 4 4 202 5 5 192 6 7 31这样一组s与x,y,z没有直接函数表达式关系的数据希望能够用slice函数绘出切面图,也就是说,在x=1这个切面上,应该有对应s=25 21 20这三种用颜色表示的函数值。
首先,看到slice命令的帮助文件中有个例子:[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);v = x.*exp(-x.^2-y.^2-z.^2);xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];slice(x,y,z,v,xslice,yslice,zslice)colormap hsv这里的slice前三个参数,必须构成网格数据,如图:通过:[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);figure;view(3);hold on;for i = 1 : size(x, 1)for j = 1 : size(x, 2)for k = 1 : size(x, 3)plot3(x(i, j, k), y(i, j, k), z(i, j, k), '.');endendend这些点构成了网格数据所以,我们需要制造网格数据,进行截面操作;close all;clc;clear;A = [1 2 2 251 3 3 211 4 4 202 5 5 192 6 7 31];x = A(:, 1)';y = A(:, 2)';z = A(:, 3)';% 提取有效数据xb = min(x);xe = max(x);yb = min(y);ye = max(y);zb = min(z);ze = max(z);sb = min(s);se = max(s);x1 = linspace(xb, xe, 30);y1 = linspace(yb, ye, 30);z1 = linspace(zb, ze, 30);s0 = linspace(sb, se, 30);% 对有效数据分割[x1 y1 z1] = meshgrid(x1, y1, z1);% 生成网格数据点s1 = zeros(size(x1, 1), size(x1, 2));for i = 1 : size(s1, 1)s1(i, :) = s0;endst = zeros(size(x1, 1), size(x1, 2), size(x1, 3));for i = 1 : size(st, 3)st(:, :, i) = s1;ends1 = st;% 构造第四维数据s1figure;hold on;view(3);slice(x1, y1, z1, s1, x, [], []);这样就做出来所谓的截面图这个是通过slice(x1, y1, z1, s1, x, y, []);来做的,但没有颜色值设置选项;close all;clc;clear;A = [1 2 2 251 3 3 211 4 4 202 5 5 192 6 7 31];x = A(:, 1)';y = A(:, 2)';z = A(:, 3)';s = A(:, 4)';% 对有效数据分割xb = min(x);xe = max(x);yb = min(y);ye = max(y);zb = min(z);ze = max(z);y1 = linspace(yb, ye, 30);z1 = linspace(zb, ze, 30);x1 = ones(size(y1, 1), size(y1, 2)) * x(1);[x1, y1] = meshgrid(x1, y1);z = zeros(length(z1));for i = 1 : size(z, 1)z(i, :) = z1;endsurf(x1, y1, z);% 这个时候产生了对应于x1的网格截面图,下面来定颜色[a, b] = size(z);rgb = ones(a, b);len = length(s)+1;slic = floor(linspace(1, a, len));for i = 1 : length(slic)-1rgb(slic(i):slic(i+1)-1, :) = rgb(slic(i):slic(i+1)-1, :)*s(i);end% 产生颜色值figure;surf(x1, y1, z, rgb);这个是设置了颜色的图。
第2章 MATALAB编程与作图

100000
例 3 求解级数求和问题
S
(
1 2
i
1 3
i
)
i1
s=0; for i=1:100000 s=s+1/2^i+1/3^i;
end s
多重嵌套循环语句:
例 3 m 1,....5, n 1,...5, 求由 m 和 n 对应的元素和构成的矩 阵 H。
for m=1:5
for n=1:5
H(m,n)=m+n end end H
1.2 while语句 与for循环以固定次数求一组命令相反,while循环以 不定的次数求一组语句的值. while 表达式(expression) 循环体{commands} end 只要在表达式(expression)里的所有元素为真, 就执行while和end语句之间的命令串{commands},执行完 成后再判断表达式是否为真,若不是则跳出循环体,向下 继续执行。
1. 函数M文件
MATLAB的内部函数是有限的,有时为了研究某 一个函数的各种性态,需要为MATLAB定义新函数, 为此必须编写函数文件. 函数文件是文件名后缀为M 的文件,这类文件的第一行必须是一特殊字符 function开始,格式为: function 因变量名=函数名(自变量名) 函数值的获得必须通过具体的运算实现,并赋给因变 量.
例如:function cxd1(A,B) try X=A*B catch disp`**Error cxd1 A*B` end
输入矩阵A、B的值,执行上面的程序,当A的列数不等于B的行 数时,程序就会发现这个错误,并打印消息 **Error cxd1 A*B 。
数 学 建 模
第三章 利用MATLAB绘制函数图形

四、特殊平面图形的绘制
五、三维曲线图形
plot3
如果输入自变量是三个大小相同的矩阵 x、y、z,那么 plot3 会
依序画出每个行矢量在三维空间所对应的曲线
格式:plot3(x1,y1,z1,S1, x2,y2,z2,S2,…) 说明:一次和绘制多条曲线
ezplot3
空间曲线的简易绘图命令
polar(theta,rho,'--r')
% 进行极坐标绘图
用ezpolar作图,输入: ezpolar('5*(1-sin(theta)')
四、特殊平面图形的绘制
hist指令
绘制统计直方图,对大量的资料,显示资料的分布情况和统计特性 格式:hist(Y, n) %n是一个标量,表明使用n个箱子. 将资料依大小分成数堆,将每堆的个数画出 例12:>> x=randn(500,1); %产生500个正态分布随机数 hist(x,25) %将数据绘制成25个直方
>> x= 0:0.1:4*pi; subplot(2, 2, 1); plot(x, sin(x)); subplot(2, 2, 2); plot(x, cos(x)); subplot(2, 2, 3); plot(x, exp(-x/3)); subplot(2, 2, 4); plot(x, x.^2);
注:还可直接输入 ezplot3('x','x*sin(x)*cos(x)','x*cos(x)*cos(x)',[0,20]).
举例—三维绘图
例15:同时绘制两条空间曲线. >> t = linspace(0, 10*pi, 501); plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t); % 同时画两条曲线
matlab绘图(一维、二维、三维)

>> x=[0:0.5:2*pi]; >> y=sin(x); >> plot(x,y,'.')
第20页,共42页。
数学实验
二维作图举例 点 线 先画点,后连线
例:y = sin(x), 0 < x < 2 二、连线 >> x=[0:0.5:2*pi]; >> y=sin(x); >> plot(x,y,‘r.-')
>> y=sin(x); >> plot(x,y);
第3页,共42页。
Matlab 二维作图
数学实验
基本形式
plot(x,y)
✓ x, y 都是向量,则以 x 中元素为横坐标, y 中元素为纵坐 标作平面曲线。此时 x, y 必须具有相同长度。
✓ x, y 都是矩阵,则将 x 的列和 y 中相应的列相组合,绘 制多条平面曲线。此时 x, y 必须具有相同的大小。 ✓ x 是向量, y 是矩阵,若 x 的长度与 y 的行数相等,则将 x 与 y 中的各列相对应,绘制多条平面曲线;否则,若 x 的长 度与 y 的列数相等,则将 x 与 y 中的各行相对应,绘制多条平 面曲线。此时 x 的长度必须等于 y 的行数或列数。
Property: linewidth, markersize, fontsize, fontweight, fontname, …
第9页,共42页。
图形的其他属性
坐标轴标注 xlabel(’text’) 或 ylabel(’text’)
例:
数学实验
第10页,共42页。
图形的其他属性
添加图例 legend(string1,string2, ...) >> legend('cos(x)');
matlab作图与数据处理

左键双击文件夹中huatu.m,打开该程序文件,此文件中第4-10 行中有下
面这样一行代码,此代码用于对图形格式进行统一设置。
geshi_shezhi('宋体',7.5,'Times New Roman',7.5,0.5,'r.-',0.5,12);
括号内为参数,参数以逗号为分界符。修改相应位置的参数后点击上方保存按
第三步 作图工具的简单介绍
1)此工具shuju.m用于将第二步导入的实验数据以变量的形式存储 在基本工作空间(ppt1.1 用户界面右侧)中,方便下面工具调用它来进 行作图。
2)此工具geshishezhi.m 用于画图前对论文格式进行统一设置。
3)此工具huatu.m用于画图,能画各种直角坐标系图形(包括横坐 标为对数坐标的坐标系图形。
角坐标系,false为对数坐标系。
5
x 10 2
60
请输入 请输入
5
x 10 2
60
请输入 请输入
1.5
40
1.5
40
速度/ v 加速度
速度/ v 加速度
1
20
1
20
0.5
0
0.5
0
0
-20
0 2 4 6 8 10 12 14 16 18
时间/s
4
x 10
0
-20
0
1
2
3
4
5
6
10
10
10
10
10
10
-20
-30
-40
-50
0
10
20
30
时间/s
2.以横坐标x数据,纵坐标y数据作直角坐标系或对数坐标系图形 形如 huatu(shili_x,shili_y,'时间/s','速度/v',true);其中第一,
Matlab绘制曲线方法

t=0.1:0.1:3*pi;
y=sin(t);
figure(1)
semilogx(t,y)
grid on
%为图形窗口添加网格
figure(2)
semilogy(t,y)
figure(3)
loglog(t,y)
第4章 Matlab的图形功能
d.双 y 轴图形 绘制左右均有 y 轴的图形 plotyy(x1,y1,x2,y2)
第4章 Matlab的图形功能
三、三维绘图 1. 三维曲线绘图命令 三维函数 plot3主要用来表现单参数的三维曲线,与二维绘 图函数 plot 相比,只多了第三维数据。 其调用格式为: plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,…)或 plot3(X,Y,Z,s) 参数的含义如下: Xn、Yn、Zn:第一到三维数据,是尺寸相等的向量/矩阵; s、s1、s2:是字符串,用来设置线型、颜色、数据点标记。
第4章 Matlab的图形功能
4. 坐标系的调整 实现坐标系的调整的命令是 axis 函数。 调用格式为: axis([xmin,xmax,ymin,ymax,zmin,zmax])
坐标的最小值( xmin,ymin,zmin)必须小于相应的最大值 ( xmax,ymax,zmax),否则会出错。
第4章 Matlab的图形功能
用plot(Z)绘制图形。
x=0:pi/20:2*pi; Z=sin(x)+cos(x)*i plot(Z) 等价于plot(real(Z),imag(Z))
用 plot(x1,y1,x2,y2,…) 在 同 一 窗 口中绘制多条曲线,且坐标和 长度都不同。
t1=0:0.1:3*pi; t2=0:0.1:6; plot(t1,sin(t1),t2,sqrt(t2))
第三章 matlab图形绘制

指定
grid 图形中加网格
例3.在同一坐标系下画出sinx和cosx的图形,并适当加 标注.
x=linspace(0,2*pi,30);y=[sin(x);cos(x)]; plot(x,y);grid;xlabel (‘x’);ylabel (‘y’); title(‘sine and cosine curves’); text(3*pi/4,sin(3*pi/4),’\leftarrowsinx’); text(2.55*pi/2,cos(3*pi/2),’cos\rightarrow’)
结果见下图.
4.多幅图形
subplot(m,n,p)可以在同一个图形窗口中画出多个图 形,用法见下例.
x=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).* cos(x);v=sin(x)./cos(x); subplot(2,2,1),plot(x,y),title(‘sin(x)’) subplot(2,2,2),plot(x,z),title(‘cos(x)’) subplot(2,2,3),plot(x,u),title(‘2sin(x)cos(x)’) subplot(2,2,4),plot(x,v),title(‘sin(x)/cos(x)’)
plot(x1,y1,x2,y2, …) 在此格式中,每对x,y必须符合 plot(x,y)中的要求,不同对之间没有影响,命令对每 一对x,y绘制曲线.
例1.做出y=sinx在[0,2π]上的图形,结果见下图.
x=linspace(0,2*pi,30); sin(x);plot(x,y)
例2.在同一坐标系下做出两条曲线y=sinx和y=cosx 在[0,2π]上的图形.结果见下图.
第五章 matlab绘图ppt课件

28.04.2020
.
17
给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带 参数的grid命令在两种状态之间进行切换。 给坐标加边框用box命令来控制。box on/off命令控制是加还是不加边框线,不带 参数的box命令在两种状态之间进行切换。
例5-8 在同一坐标中,可以绘制3个同心 圆,并加坐标控制。
28.04.2020
.
15
函数中的说明文字,除使用标准的 ASCII字符外,还可使用LaTeX格式的控制 字符,这样就可以在图形上添加希腊字母、 数学符号及公式等内容。例如, text(0.3,0.5,‘sin({\omega}t+{\beta})’)将得到 标注效果sin(ωt+β)。
例5-7 在0≤x≤2区间内,绘制曲线y1=2e-0.5x 和y2=cos(4πx),并给图形添加图形标注
程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); plotyy(x,y1,x,y2);
28.04.2020
.
10
4. 图形保持
hold on/off命令控制是保持原有图形还是 刷新原有图形,不带参数的hold命令在两 种状态之间进行切换。
28.04.2020
.
19
5.1.6 对函数自适应采样的绘图函数
fplot函数的调用格式为:
fplot(fname,lims,tol,选项)
其中,fname为函数名,以字符串形式出现, lims为x,y的取值范围,tol为相对允许误差, 其系统默认值为2e-3。选项定义与plot函数 相同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
Matlab 绘图
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
3
Matlab 绘图
手工作图
找点: x=0, pi/3, pi/2, 2*pi/3, pi, … 计算函数值: y=sin(0), sin(pi/3), sin(pi/2), 描点:在坐标系中画出这些离散点
…
19
以下标为横坐标,元素值为纵坐标,等价于:
x=[1:length(y)];plot(x,y);
例:>> y=[0,0.48,0.84,1,0.91,6.14];
>> plot(y); >> figure(2); plot([1:length(y)], y)
自己动手
plot(Y): 当 Y 是矩阵时的图形是什么? >> Y=[1 2; 3 5; 6 9]; plot(Y); >> plot(Y’);
25
图形的其他属性
图形标注与坐标控制 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,…)
26
图形的其他属性ຫໍສະໝຸດ 标题 title(’text’)
例
可以指定文本的属性 title('text', 'Property1', value1, ' Property2', value2, ...)
自己动手
在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
14
【例】在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
程序如下:
>>x=0:pi/100:2*pi;
>>y=2*exp(-0.5*x).*cos(4*pi*x); >>plot(x,y)
此点 必加
15
Matlab 二维作图
基本形式
plot(x,y)
x, y 都是向量,则以 x 中元素为横坐标, y 中元素为纵坐标作平面曲线。 此时 x, y 必须具有相同长度。 当x ,y 是同维矩阵时,则以x,y对应列元素为 横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 此时 x, y 必须具有相同的大小。
16
x 是向量, y 是矩阵, ①若 x 的长度与 y 的行数相等,则将 x 与 y 中 的各列相对应,绘制多条平面曲线; ②若 x 的长度与 y 的列数相等,则将 x 与 y 中 的各行相对应,绘制多条平面曲线。 此时 x 的长度必须等于 y 的行数或列数。
>>title(‘first figure’); xlabel(‘横’);ylabel(‘纵’); legend(‘y=cos(x)-sin(x)’); text(pi/2,-1, ‘final point’);
11
Matlab 绘图步骤
(7)图形输出
大家完成图形的绘制和编辑以后,需要将图形打印或是 存放在其他文档中,最简单的方法是使用【file】菜单中的 【save as】选项,并且大家可以自行选择需要保存的格式 类型。
9
Matlab 绘图步骤
(5)设置坐标范围及网格线
完成基本绘制后,在图形概貌的基础上对图形进行编 辑,增强图形的可读性;一般说来,大家需要设置坐标轴的刻 度范围和分隔线。本例系统默认的坐标轴范围是x,y∈[-2,2], 且没有网格线,将本例的x坐标轴和y坐标轴的范围分别设置 为[-π,π],和[-4,4],且给坐标加上分隔线,可以输入 以下代码:
33
绘制子图
蓝色、点划线 离散点为菱形 黑色、实线 离散点用星号
23
红色、虚线、 离散点用加号
plot(X,Y,s) s参数: - 实线 . : 点线 o -. 点划线 x -- 虚线 + y 黄色 m g 绿色 b
点 圆 x符号 +号 紫红色 蓝色
* s d v c w
星号 ^ 上三角 方形 < 左三角 菱形 > 右三角 下三角 p 正五边形 蓝绿色 r 红色 白色 k 黑色
>>axis([-pi,pi,-4,4]) grid on
10
Matlab 绘图步骤
(6)给图形加注释
为了进一步使图形具有说服力和可读性,我们还经常给图 形添加注释,例如图形的名称、坐标轴的名称、图例及文字说 明,针对本例图形,给图形取名为“first figure” ,x和y坐 标轴分别取名“横”、“纵”,图例设置为“ y=cos(x)sin(x) ”,并在(pi/2,-1)点加上文字说明“ final point”,输入以下代码:
用直线或曲线连接这些点,得到函数的大致图形
4
Matlab 绘图
Matlab 作图
给出离散点列: x=[0:pi/10:2*pi] 计算函数值: y=sin(x) 画图:matlab 二维绘图命令 plot 作出函数图形 plot(x,y)
例:>> x=[0:pi/10:2*pi];
>> y=sin(x); >> plot(x,y);
上述参数的不同组合可以为图形设置不同的线形、 颜色和标识,调用时以单引号来引用,各选项直接相连, 不需要分隔符。
24
【例】 >>x=0:0.1*pi:pi; >>y=sin(x); >>z=cos(x); >>plot(x,y,'--k',x,z,'-.rd')
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.5 1 1.5 2 2.5 3 3.5
12
Matlab 二维作图
基本形式
plot(x,y)
x, y 都是向量,则以 x 中元素为横坐标, y 中元素 为纵坐标作平面曲线。此时 x, y 必须具有相同长度。
13
plot 举例
例:y = cos(x) 在 [0, 4π] 上的图像
>> x=[0:0.1:4*pi]; >> y=cos(x); >> plot(x,y);
基本形式(续)
plot(y): 绘制向量 y 中元素的线性图 (1) Y为实向量,则以Y的索引坐标作为横坐标,Y作为 纵坐标来绘制图形。例:
>>y=rand(100,1); >>plot(y)
(2)如果Y为复数向量,则以向量的实部作为横坐标,虚 部作为纵坐标,来绘制图形。例: >>x=rand(100,1); >>z=x+y.*i; >>plot(z)
x [
, ] 2 2
7
Matlab 绘图步骤
(2)选择图形的显示位置
系统默认图形窗口为Figure1,如果大家需要在 图形窗口中并列显示多个窗口,这需要使用subplot 指令来选择子图号。如果大家需要把图形窗口定义为 Figure6,并且分为3*2=6个子窗口,使得本例函数 图形显示在图形窗口的左下角,那么大家需要在命令 窗口中输入以下代码: >>figure(6); Subplot(3,2,5)
17
指出以下各个绘图命令的输出图形分别是什么, 并上机验证
>> t=[0 1]; x=[1 2]; y=[x;3 4]; z=[y;5 6]; >> plot(t,x); >> plot(t,y); >> plot(t,y'); >> plot(t,z); >> plot(t,z');
18
Matlab 二维作图
在指定地方添加文本 text(x,y,string1,string2, ...)
>> text(pi/2,cos(pi/2),'\leftarrowy=cos(x)'); xlable, ylabel, text 命令也可以指定文本的属性
29
其他相关命令
新建绘图窗口 figure(n)
保持当前窗口的图像 hold on 或 hold off
显示网格 grid on 或 grid off
30
figure(n) —— 创建窗口函数,n为窗口顺序号。 >>t=0:pi/100:2*pi; >>y=sin(t);y1=sin(t+0.25); y2=sin(t+0.5); >>plot(t,y) %自动出现第一个窗口 >>figure(2) >>plot(t,y1) %在第二窗口绘图 >>figure(3) >>plot(t,y2) %在第三窗口绘图
5
在MATLAB中用图形函数绘图的一般操作步骤分 为7步,如表所示,下面以绘制一个简单三角函数 的图形为例,详细介绍各个步骤。
6
Matlab 绘图步骤
【例】用图形表示 y cos x sin x , (1)准备图形数据
图形是数据变换规律和相互联系的形象显示,所以 数据输入是图形创建的基础,我们需要选定数据的范围, 选择对应范围的自变量,计算相应的函数值。本例中, 我们需在命令窗口输入如下代码: >>x = -pi/2:.1:pi/2; >>y=cos(x)-sin(x);
32
绘制子图
MATLAB的绘图功能十分灵活,不但可以在 一个图形窗口中绘制多个完全独立的子图,称 为绘制子图;也允许用户在一个图形中绘制多 条曲线,称为图形叠绘。接下来首先介绍子图 的绘制方法。 当大家需要进行相关图形的比较或者是同类 图形的分析时,比较方便的方式是把若干图形 在同一个图形窗口显示出来。针对用户的这一 点需要,MATLAB提供了子图的绘制功能,并约 定了符合常规思维习惯的分栏方式。