今天写机械设计的带传动实验报告时,需要绘制滑动曲线ε-F和效率曲线η-F的关系曲线——

正在学MATLAB的我内心狂喜,直接复制表格中的数据,掏出了plot函数

>> S=[0.348.55.5

0.364.64.8

0.380.63

0.780.63.3

4.277.73.7

7.375.83.8

10.173.54.0

13.471.34.2

17.667.64.5

22.164.04.5]

>> plot(S(:,3),S(:,1),'r',S(:,3),S(:,2),'b')

然后出现了这个邪性玩意儿……

怎么还带拐的……

我定睛一看,原来作为自变量的F没有按顺序排列。plot(x,y)会根据点出现的顺序连接,绘制图像。

那么要如何对数据进行排序呢?

如同在Excel中一样,MATLAB也有函数可以以某一列为标准对矩阵进行行位置的调换。

>> S=sortrows(S,3) %S是待变化矩阵,3是列序号

大量数据排序前

大量数据排序后

这样就可以得到结果:

0.3000   80.6000    3.0000

0.7000   80.6000    3.3000

4.2000   77.7000    3.7000

7.3000   75.8000    3.8000

10.1000   73.5000    4.0000

13.4000   71.3000    4.2000

17.6000   67.6000    4.5000

22.1000   64.0000    4.5000

0.3000   64.6000    4.8000

0.3000   48.5000    5.5000

有了这个整理过的数据,我们就可以掏出plot了——

虽然但是……怎么感觉哪里怪怪的……

绘制滑动曲线ε-F和效率曲线η-F的关系曲线……

绘制滑动曲线和效率曲线……

绘制曲线……

曲线……

这怎么看都是折线啊喂!!

咳咳,毕竟是学过《科学计算与MALTLAB》的兔,说到根据离散数据点画平滑曲线,立刻就想到要掏出Polyfit进行拟合。

在不是很严谨的场合,多项式拟合可以满足你的大部分需求……

>> F=S(:,3)'

>> e=S(:,1)'

>> n=S(:,2)'

%先把数据搬运一下,便于取用

>> c1 = polyfit(F, e, 3);

%进行拟合,数字代表拟合阶数,如果为1,则为线性拟合

%结果是拟合得到的系数

>> ee=polyval(c1,F,1);

%拟合后,计算每一个横坐标对应的值ee

>> c2 = polyfit(F, n, 3);

>> nn=polyval(c2,F,1);

%同理对η-F曲线也进行拟合

>> plot(F,ee,'r',F,nn,'b')

结果还挺漂亮的

变量好多好烦,还有没有更直接的画法呢?

善用搜索的小兔找到了spcrv函数。

>> values1=spcrv([[F(1) F F(end)];[e(1) e e(end)]],3);

>> values2=spcrv([[F(1) F F(end)];[n(1) n n(end)]],3);

%两个value是矩阵,第一行表示x值,第二行表示y值

>> plot(values1(1,:),values1(2,:),'r',values2(1,:),values2(2,:),'b');

通过help得知,spcrv()可以直接生成B样条曲线,对比基于最小二乘法的polifit(),spcrv()除了代码行数少外,更有如下特点

1、无法得到目标函数

2、曲线更贴近数据点

3、对outliers敏感,即,容错率更低

把两种曲线放在一张图上并圈出原始数据点就知道了:

考虑到学校实验器材误差可能比较大,我最后还是选择了polyfit()

最后对图表进行一些修饰——

>> hold on

>> [AX,H1,H2] =plotyy(F,ee,F,nn,@plot);

% 获取坐标轴、图像句柄

>> set(get(AX(1),'ylabel'),'string', 'ε/%');

>> set(get(AX(2),'ylabel'),'string', 'η/%');

>> xlabel('F/N')

%设置x,y轴说明

>> title('滑动曲线ε-F和效率曲线η-F的关系曲线')

%设置标题

得到结果——

点左上角File选择保存路径,把文件格式改成jpg,实验报告插图就完成啦!

总结:

使用MATLAB根据实验数据绘制图像时——

1、使用sortrows对数据进行排序

2、根据数据特点选择polyfit()或spcrv()对数据进行拟合

3、绘制图像

后面会更新更多期末复习相关内容,包括《机械设计基础》《材料科学基础》《马克思主义基本原理概论》等~你的肯定是巨兔更新的最大动力!期末周大家一起加油奥~

对本篇内容有思考欢迎在评论区留言讨论!

喜欢本篇内容请给巨兔点个在看

matlab 平滑曲线连接_兔学 | MATLAB由离散数据点绘制曲线图像相关推荐

  1. matlab 平滑曲线连接_【仪光学习】技能分享 | 前方高能:如何用Matlab轻松实现数学建模...

    作为前阵子被禁用的Matlab到底有怎样的魔力呢?Matlab毫无疑问是理工生的科研神器,在各大建模比赛中也被高频使用,下面就来聊聊Matlab的一些"奇技淫巧". 一 基础用法 ...

  2. matlab 平滑曲线连接_平滑轨迹插值方法之多项式插值(附代码)

    前言 今天我们来聊聊轨迹插值,在机器人的运动规划和控制领域,参考轨迹的生成是一个历史悠久的问题,已经发展出了一系列的方法.今天我们就来聊一聊轨迹插值领域中最常见的轨迹插值方法:多项式插值. 说明:本文 ...

  3. 厄米高斯光束 matlab,拉盖尔高斯光束_厄米高斯光束MATLAB仿真

    <拉盖尔高斯光束_厄米高斯光束MATLAB仿真>由会员分享,可在线阅读,更多相关<拉盖尔高斯光束_厄米高斯光束MATLAB仿真(4页珍藏版)>请在人人文库网上搜索. 1.激光原 ...

  4. matlab 图片倒影_计算物理基于matlab方法研究水中倒影问题

    计算物理基于matlab方法研究水中倒影问题 基于 Matlab 方法研究水中倒影问题[摘 要] 本文介绍了用 matlab 研究倒影问题的方法,利用 matlab 可视化的优点可 以直观的得出结果. ...

  5. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  6. matlab hist函数_超全Matlab绘图方法整理(建议收藏!)

    你好,我是goldsunC 让我们一起进步吧! 使用Matlab绘图 图像是结果的一种可视化表现,它能直观的体现你的结果,并且能体现你获得结果的准确性,在当前的大数据时代,在做数据分析的时候,将其可视 ...

  7. matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀

    作者 | 蔡老师 仿真秀专栏作者 首发 | 仿真秀平台 导读:正文之前,我在此详细说明一下,因为本文包含的程序太难得,网上肯定找不到这样的程序.随着讲课的越来越深入,我给出的程序会越来越实用,接近于实 ...

  8. matlab for循环_从零开始的matlab学习笔记——(5)循环

    上一节的内容有点多,所以循环我就放在了这一篇来说说.matlab的循环和c语言很相似,也是分为for循环和while循环. while循环: while condition 代码1 end 代码2 c ...

  9. matlab中删除照片_如何使用matlab从图像中删除划痕

    如果您知道划痕的位置,则此问题称为 inpainting,并且存在非常复杂的算法.因此,一种方法是尽可能好地检测划痕,然后在其上使用标准的修复算法.我在Mathematica中玩了一下你的形象: 首先 ...

  10. matlab 思维数组_如何在Matlab中保存多维数组?

    I have an array M=(1000000,12,2,2). How do I write it to a file to work on later? save('filename.txt ...

最新文章

  1. 通过网络方式安装linux的五种方法
  2. php 生成小程序二维码
  3. 【转】近期Coolite控件的技术点总结
  4. 路由表(FIB)的初始化
  5. MySQL基础思维导图
  6. 【译】使用Java编写Oracle Tuxedo应用
  7. iOS在照片上添加水印
  8. ios 持续获取定位 高德地图_高德地图API获取POI数据
  9. 最新C语言编程软件推荐(2021整理)
  10. Java连接SAP ————JCO 3.0技术详解
  11. speedoffice如何根据身份证号码提取出性别
  12. 华为STUN类协议需要NAT ALG进行帮助吗
  13. 【elasticsearch报错】 blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];
  14. nofollow、noopener和noreferrer标签的区别
  15. 新媒体运营,微博平台运用技巧分享
  16. nginx之30分钟搞定nginx反向代理和负载均衡
  17. 计算机文档处理是什么,电脑文档被锁了怎么办
  18. 百度oCPC一键联调激活教程?api怎么对接?
  19. 基于SSM的企业OA办公系统
  20. 《并行计算》期末总结

热门文章

  1. web应用系统性能测试的种类
  2. FL Studio下载2020水果软件注册机音频剪辑功能讲解教程
  3. html2canvas ios 15.0截屏 变黑 页面刷新
  4. 【C++学习五】STL库的应用
  5. Windows7安装IIS服务器
  6. 数字化图书馆软硬件环境要求-转自《博奥智源》
  7. 公差带与配合 常用基孔(轴)制基准公差数值
  8. APP测试功能点总结
  9. c4d打开没反应_(图文+视频)C4D野教程:总结四种制作漩涡样条的方法
  10. 谷歌浏览器不支持html2.0,谷歌浏览器不能播放视频怎么办_chrome浏览器无法播放视频的解决方法-系统城...