首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何用matlab画函数图_matlab常用画图函数

如何用matlab画函数图_matlab常用画图函数

作者头像
全栈程序员站长
发布2022-09-28 10:32:10
发布2022-09-28 10:32:10
12.5K0
举报

大家好,又见面了,我是你们的朋友全栈君。

matlab画图函数基本使用(适合新手)

画图

1. 散点图(scatter()函数):

scatter(X,Y) 简单来用给出X Y的值通过函数便能在该坐标上画出一个圆圈,例如

代码语言:javascript
复制
scatter(1,2)

如果将X Y替换成长度相同的数组(长度不同自然无法一一对应)便能够画出多组点

我们可能根据实际的需要,会调整圆圈大小和颜色,那么就要在scatter()后面添加相应的变量 scatter(X,Y,S,C) S 必须为标量或长度与 X 相同的矢量。 (如果S是标量,则MATLAB绘制所有标记的大小相同。如果S是矢量,则分别对应为X、Y所确定圆的大小) C 必须为 RGB 三元数、与 X 长度相同的 M×1 矢量或 M×3 矩阵。

代码语言:javascript
复制
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
sz = linspace(1,100,200);
c = linspace(1,10,length(x));
scatter(x,y,sz,c)

在scatter(x,y,s,c,A) 改变A的“值”可以将“点”做相应的转换 ’filled‘ ————————————–实心圆 ‘s’ ——————————————-正方形 ’d‘——————————————–菱形 ’.’———————————————点 (实用性强!) ‘p’——————————————–⭐(配上颜色很好看!)

2. 函数图像(plot()函数):

plot()函数为我们提供了绘制函数图像的功能,通过plot(x,y)变可绘制函数图像

代码语言:javascript
复制
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

下面交代一下此函数使用需注意的地方和一些扩展使用:

1. 在同一张图绘制多条曲线

代码语言:javascript
复制
x1 = linspace(-2*pi,2*pi);
x2 = linspace(0,4*pi);
y1 = sin(x1);
y2 = cos(x2);

figure
plot(x1,y1,x2,y2)

运行结果:

也可以通过hold on hold off语句实现:(效果相同) 代码如下:

代码语言:javascript
复制
x1 = linspace(-2*pi,2*pi);
x2 = linspace(0,4*pi);
y1 = sin(x1);
y2 = cos(x2);

figure
plot(x1,y1)
hold on
plot(x2,y2)
hold off

2. 改变颜色和大小

plot(x1,y1,‘c’,x2,y2,‘y’) 后面加上相应的颜色变可改变曲线颜色便于区分(系统会默认蓝和红,自古红蓝出CP) 同样plot(x1,y1,x2,y2,’–’,x,y3,’:’) 可以改变曲线类型,

代码语言:javascript
复制
plot(x,y,'b--')

b代表BLUE , – -代表曲线类型, 读者自行尝试使用

3.限制X Y坐标轴范围

3.加入ylim([a,b])和xlim([c,d])来确定函数x,y的 范围:

代码语言:javascript
复制
x = [-5 -eps(1) 0 eps(1) 5];
y = sign(x);
plot(x,y)
grid on

可以看出Y的范围是-1到1画出的图像也刚好定格,这样十分不美观,我们利用ylim()加以修饰,代码如下:

代码语言:javascript
复制
x = [-5 -eps(1) 0 eps(1) 5];
y = sign(x);
plot(x,y)
ylim([-2 2])
grid on

4.grid on 加上网格线

在上面的例子中,加入了grid on 所以图中就会出现网格

5. subplot函数绘制多个子图

subplot(m,n,p)在mXn的区域内绘制图像,p为第几个子图。

代码语言:javascript
复制
x = linspace(0,10);
y1 = sin(x);
y2 = sin(2*x);
y3 = sin(4*x);
y4 = sin(8*x);
figure
subplot(2,2,1)
plot(x,y1)
title('Subplot 1: sin(x)')
subplot(2,2,2)
plot(x,y2)
title('Subplot 2: sin(2x)')
subplot(2,2,3)
plot(x,y3)
title('Subplot 3: sin(4x)')
subplot(2,2,4)
plot(x,y4)
title('Subplot 4: sin(8x)')

3.拟合N阶曲线(polyfit()函数和polyval()函数)

polyfit()基本使用:

polyfit(x,y,n)拟合N阶多项式系数(注意这里只是拟合系数,并不能画出函数图像,需要借助其他函数绘制拟合曲线的函数图像)

p(x)=p1xn+p2xn−1+…+pnx+pn+1

代码语言:javascript
复制
x = linspace(0,4*pi,10);
y = sin(x);
p = polyfit(x,y,7)

运行结果如下: p =

-0.0001 0.0028 -0.0464 0.3702 -1.3808 1.9084 -0.1141 0.0002

在这里在介绍一种函数 polyval()用于函数估值运算

代码语言:javascript
复制
p = [3 2 1];
polyval(p,[5 7 9])

结果为:

ans =

代码语言:javascript
复制
86   162   262

也就是当 p(x)=3X^2+2X+1时,X分别等于5,7,9的值。

所以可以将两个函数一起使用,即用polyfit()函数给出拟合曲线系数,再用polyval()函数计算拟合后曲线的Y值,有了X,Y我们就可以画出拟合后曲线的图像。`

代码语言:javascript
复制
x = linspace(0,1,5);
y = 1./(1+x);
p = polyfit(x,y,4);
x1 = linspace(0,2);
y1 = 1./(1+x1);
f1 = polyval(p,x1);
figure
plot(x,y,'o')
hold on
plot(x1,y1)
plot(x1,f1,'r--')
legend('y','y1','f1')

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193782.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月2日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • matlab画图函数基本使用(适合新手)
  • 画图
    • 1. 散点图(scatter()函数):
    • 2. 函数图像(plot()函数):
      • 1. 在同一张图绘制多条曲线
      • 2. 改变颜色和大小
      • 3.限制X Y坐标轴范围
      • 4.grid on 加上网格线
      • 5. subplot函数绘制多个子图
    • 3.拟合N阶曲线(polyfit()函数和polyval()函数)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档