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

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

Stack Overflow用户
提问于 2011-07-25 06: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 12:51:33

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 07:46:47

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 08:00:41

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

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

https://stackoverflow.com/questions/6817897

复制
相关文章
PPT如何打印奇数页和偶数页?获取更多打印功能?
1、点击[视图] 2、点击[大纲视图] 3、点击[文本] 4、点击[复制] 5、点击[开始菜单] 6、点击[Word] 7、点击[布局] 8、点击[纸张方向] 9、点击[横向] 10、点击[文本] 11、点击[粘贴] 12、点击[文本] 13、点击[文件] 14、点击[打印] 15、点击[打印所有页] 16、点击[仅打印奇数页]
裴来凡
2022/05/28
4.9K0
PPT如何打印奇数页和偶数页?获取更多打印功能?
如何加快IDEA下载gradle的速度
Gujiu
2023/10/10
2.1K0
如何加快IDEA下载gradle的速度
思迅食通天8如何调出标签打印功能
执行以下代码即可实现;在小类里可以控制打印标签的类别。具体标签机型号的指定及格式设置请在系统管理----标签打印参数设置里面设置!如若标签机的型号gp-3120T系列,请安装兼容驱动TSC TDP-245并且打印机名保持和驱动名称一致.如若是网口标签打印机GP-3150TL系列请选用兼容驱动TSC TDP-243.
学派客
2023/04/07
5850
MATLAB:将figure图打印成pdf格式
一个小小的需求,一个同学咨询如何把figure图打印成pdf格式,故分享一下这个方法,
用户9925864
2022/07/27
1.2K0
MATLAB:将figure图打印成pdf格式
手机端实现打印功能
1、  打印代理PC,使用Spring轮询机制,每隔一定时间,通过HTTPClient,向服务器发出查询待打印队列的请求。
week
2018/08/27
1.8K0
如何加快Python 应用的启动时间
对于Python应用程序,导入模块占用了大部分启动时间。例如,pipenv --version 花费了大约800ms,而import pipenv 花费了700ms。
代码医生工作室
2019/06/21
2.2K0
如何加快Python 应用的启动时间
如何查找正在等待打印的打印机的打印任务
加菲猫的VFP
2023/08/21
2190
如何查找正在等待打印的打印机的打印任务
WordPress 添加网页打印功能
网页页面打印功能方便我们快速链接打印机,Wordpress方面有很多插件,今天何先生在这里介绍简单代码就能实现的方法。
空木白博客
2019/04/23
1.8K0
如何加快MySQL模糊匹配查询
有时我会看到条件如下的模式匹配查询:“其中的字段名像'%something%'”。 MySQL不能为这些查询使用到索引,这意味着它必须每次都进行一次全表扫描。 (这真的只有一半是真的 - 因为还有Fu
用户1263954
2018/05/30
3.7K0
利用bootstrap-table插件自带的打印功能打印表格
文章目录 1、前端代码: 2、前端页面: 1、表格数据展示 2、点击打印按钮之后: 3、插件下载地址: 4、碰到的bug 1、前端代码: <link href="https://unpkg.com/bootstrap-table@1.18.2/dist/bootstrap-table.min.css" rel="stylesheet"> <script src="https://unpkg.com/bootstrap-table@1.18.2/dist/bootstrap-table.min.js"
别团等shy哥发育
2023/02/25
2K0
利用bootstrap-table插件自带的打印功能打印表格
屏蔽 WordPress 智能字符转码功能,加快页面显示
WordPress 有个自带函数 wptexturize,它会将纯文本中的直引号转换为智能引号(弯曲的引号),比如下面这句话:
Denis
2023/04/13
5810
html如何打印_html打印代码
通常在浏览网页的时候,网页上总是出现一些和内容无关的内容,在打印的时候,要是把整个网页都打印下来,总会有些不方便。。。所以在有需要打印的网页上稍微设置一下打印页是很有必要的。。。
全栈程序员站长
2022/09/22
12.6K0
增加MATLAB屏幕截图功能
借助Java或者Python实现截取屏幕指定矩形区域 Java实现 function outputImage=screenCapture(subRegion,outputFile) robo = java.awt.Robot; if ~exist('subRegion','var') || isempty(subRegion) %获取屏幕尺寸 t = java.awt.Toolkit.getDefaultToolkit(); rectangle = java.awt.Rectangl
万木逢春
2019/04/30
1.7K0
c#实现打印功能
c#实现打印功能,可以设置纸张大小,字体和颜色等         /// <summary>         /// 打印的按钮         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void btnPrint_Click(object sender, EventArgs e)         {            
跟着阿笨一起玩NET
2018/09/20
3.5K0
禁用 WordPress Auto Embeds 功能,加快页面解析速度
有没有想过,只需要在文章中输入一个视频网站或者图片分享的 URL,这个 URL 里面含有的视频或者图片就自动显示出来?这样是不是很方便。
Denis
2023/04/13
1.2K0
禁用 WordPress Auto Embeds 功能,加快页面解析速度
每次放一个细胞,打印心脏或上千年,斯坦福大学如何加快3D打印心脏?
选自stanford.edu 作者:David Levin 机器之心编译 机器之心编辑部 使用先进的 3D 打印技术,斯坦福大学研究者将由活细胞制成的糊状物转化为心脏和其他器官。 心脏是人体最神奇的器官,它的腔室能长期均匀地泵动,材料柔韧,可按需收缩。这是一个结构奇迹 —— 然而,当心脏出现问题时,其固有的复杂性使其成为修复的真正挑战。因此,成千上万的先天性心脏病年轻患者必须终生应对这种疾病。 斯坦福大学生物工程助理教授 Mark Skylar-Scott 表示「小儿心脏病是美国最常见的先天性疾病之一。这
机器之心
2022/03/28
2780
MATLAB循环_matlab如何循环计算
1. while循环 在给定条件为真时,重复一个语句或一组语句。它在执行循环体之前测试状态。 语法 MATLAB中while循环的语法是 : while <expression> <statements> end 只要表达式(expression)为true,while循环将重复执行程序语句(statements)。 当结果为非空并且包含所有非零元素(逻辑或实数)时,表达式(expression)为true。 否则,表达式(expression)为false。 栗子: a = 10; % while loop execution while( a < 20 ) fprintf(‘value of a: %d\n’, a); a = a + 1; end 执行上面示例代码,得到以下结果 – value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of a: 16 value of a: 17 value of a: 18 value of a: 19 2. for循环 多次执行一系列语句,并缩写管理循环变量的代码。 for循环是一种重复控制结构,可以让您有效地编写一个需要执行特定次数的循环。 语法 MATLAB中for循环的语法是 for index = values <program statements> … End 值(values)具有以下格式 – 值格式 描述 initval:endval index变量从initval到endval每次递增1,并重复程序语句 的执行,直到index大于endval。 initval:step:endval 通过每次迭代值步长(step)增加索引(index)的值,或者 当step为负时递减。 valArray 在每个迭代中从数组valArray的后续列创建列向量索 引。 例如,在第一次迭代中,index = valArray(:,1)。 循环最多执行n次,其中n是由numel(valArray,1,:)给出的valArray的列数。valArray可以是任何MATLAB数据类型,包括字符串,单元格数组或结构体。 前两种挺简单的,所以在此值对于第三种语法进行举例子说明: X=rand(5,1); for i=X i end X=rand(1,5); for i=X i end 运行结果是: i = 0.4898 0.4456 0.6463 0.7094 0.7547 i = 0.2760 i = 0.6797 i = 0.6551 i = 0.1626 i = 0.1190 注意:对于向量建立的是列向量索引!! X=magic(3); X for i=X i end 运行输出
全栈程序员站长
2022/11/10
2.5K0
如何加快Kubernetes中Java启动速度?
本文阐述如何解决 Kubernetes 中与 CPU 限制相关的 Java 应用启动缓慢的问题。使用一个新的 Kubernetes 功能,称为“In-place Pod Vertical Scaling”。它允许调整分配给容器的资源(CPU 或内存)大小,而无需重新启动 Pod。 这个新功能从 Kubernetes 1.27 版本开始就可以使用。然而,由于是 alpha 功能,必须明确激活启用。
用户5166556
2023/09/07
5700
如何加快Kubernetes中Java启动速度?
点击加载更多

相似问题

如何加快MATLAB的集成?

12

如何加快数组搜索功能?

20

如何加快熊猫串功能?

10

如何加快熊猫的功能转换?

11

如何加快运行功能

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文