首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何加快matlab的“打印”功能

如何加快matlab的“打印”功能
EN

Stack Overflow用户
提问于 2011-07-25 14:45:43
回答 5查看 6.1K关注 0票数 2

我用matlab编写了一个相当大的数据采集程序,该程序在一个非常紧凑的时序安排下接收输入数据,并在GUI上实时绘制它。我的问题是,我需要一种方式,为程序的用户查看GUI通过网络,以监测他们的数据远程。我的解决方案是每隔5秒左右拍摄一张GUI图形快照,并将该图像保存在web服务器上。

然而,这导致了两个不可接受的问题:

  1. 打印函数太慢了--每次保存大约需要3-4秒,程序在每次调用“print”之后就会落后于其他例程。
  2. 由于某些原因,打印函数导致GUI被暂时扭曲,改变了某些组件的位置,并复制了其他组件。它只持续一秒钟左右,但它仍然使我的解决方案不切实际。

有办法解决这些问题吗?

EDIT:***对任何感兴趣的人来说,我找到的最好的解决方案就是使用一个名为极小的外部工具包。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-11-21 20:51:33

对于任何在未来与此做斗争的人来说,我在Windows平台上找到的解决方案是一个名为极小的小程序,它允许一个人使用系统命令轻松地捕获和保存屏幕截图。

需要有图形的底层Windows句柄,它可以使用超级用户YairM.Altman编写的称为gethwnd()的可公开使用的matlab函数访问。

然后,您可以获取一个非常快速、高分辨率的图形屏幕截图,并将其保存到磁盘中,如下所示:

代码语言:javascript
运行
复制
winHandle = gethwnd(matlabFigHandle);
cmndstr = sprintf('%s','MiniCap.exe -save ','"',snapShotFileNamePath,'"',...
    ' -compress 9', ' -capturehwnd ', num2str(winHandle),' -exit');
system(cmndstr);
票数 3
EN

Stack Overflow用户

发布于 2011-07-25 15:46:47

文件格式有很大的不同。这是一个样本散点图

代码语言:javascript
运行
复制
n = 1e4;
hfig = figure;
hax = plot(1:n, rand(1, n), '+');

...and一些保存到不同格式的时间。

代码语言:javascript
运行
复制
tic; print(hfig, 'test.bmp', '-dbmp'); toc      %4.1s
tic; print(hfig, 'test.bmp', '-dbmp256'); toc   %2.0s
tic; print(hfig, 'test.png', '-dpng'); toc      %1.9s
tic; print(hfig, 'test.tiff', '-dtiff'); toc    %0.45s
tic; print(hfig, 'test.jpg', '-djpeg'); toc     %0.44s
tic; print(hfig, 'test.wmf', '-dmeta'); toc     %0.42s

tiffjpegwmf是第一个联合起来的,尽管tiff文件很大,jpeg质量很差,如果你不在Windows平台上的话,wmf就会有问题。

对于光栅格式,分辨率也会影响时间。

代码语言:javascript
运行
复制
tic; print(hfig, 'test600.png', '-dpng', '-r600'); toc   %4.2s
tic; print(hfig, 'test72.png', '-dpng', '-r72'); toc     %0.31s

另一件要加快打印的事情是删除你不需要的部分情节。透明度在计算上是不确定的,传说也是如此。采样你的数据,而不是标出所有这一切也将节省时间。

票数 8
EN

Stack Overflow用户

发布于 2011-07-25 16:00:41

你的解决方案必须是纯Matlab吗?使用平台工具包获取包含GUI的窗口的快照,并将其写入磁盘。这是非常快,因为它将在一个单独的线程应该处理您的线程问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6817897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档