概述
问题描述
在GUI中接收串口数据,并绘制实时的曲线;
但是发送数据变化后,刚开始能在曲线上体现出来,几秒钟过去就出现卡顿延迟;越往后越卡。
关键词:
MATLAB、GUI、画图、实时曲线、延迟、解决方法问题分析和方法尝试
开始曲线变化流畅,越往后延迟越大,说明往后MATLAB储存数据太多导致的;
尝试每次画少一些点,是否可以解决问题;
结果开始显示时好一点,但是还会很快的卡顿和增大延迟。网上有人建议改:主页→预设→常规→Java堆内存,调大一些;
感觉结果没有变化。是不是电脑性能不好?
应该不是,毕竟是台式机,平时用起来很顺手,画个简单的图应该没问题。网上查找结果
网上有不少人遇到相同的问题,比如这个:
但是这个哥们很有意思,不知道发现了什么失误,也不说原因和结果,直接说问题解决了,就再也看不到身影……
留下了一群懵逼的表情……
继续找到了这个,问题描述一样:
说是没加分号:
分析一下:
不愿说原因的那哥们说是失误,这里发现说是分号忘了加,很有可能说的是同一个原因!
我赶紧检查了一下自己的分号有没有少,结果发现没有问题……我猜想可能某种情况下,延迟是由分号导致的,我没见过,我这里也不是分号的问题……
同样,下面说的方法也可能只适用于某种特定的情况,希望能至少给一小部分人帮助。发现解决方法
再后来反复见到一个经典的例程,最后一次浏览时,在这个例程中注意到这句话:
参考: 用matlab实时读取串口数据并动态显示曲线 -luckpl
EraseMode是什么?
当然我不会直接复制MATLAB help里面的,虽然一大堆英文看起来很有逼格……
按照个人目前的不入流水平,觉得很多MATLAB问题中文网页都能解决差不多了。normal方式很容易理解,重新绘图,但较慢!默认是normal方式。
none方式不做任何擦除,在原来图形上绘制,会出现覆盖和重叠的效果:
根据上面xor方式的描述,这种方法既可以绘制新画出来的曲线,也不会全部刷新导致延迟严重,这样的话就保证了实时性。
background 方式把旧对象的颜色变为背景色,这个好理解,但是下面这句:这种方式影响被擦除对象下面的对象?不太懂。
我试了一下background模式,和xor模式显示上没有区别,可能是,只要不全部重新刷新,就能满足实时性要求。
根据我不求甚解的性格,我才不关心background到底有什么用呢……
结语
中秋节快乐!
最后
以上就是幸福大树为你收集整理的解决MATLAB绘图延迟问题的一种方法的全部内容,希望文章能够帮你解决解决MATLAB绘图延迟问题的一种方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复