matlab - 使用 SLURM 为 Matlab 设置显示分辨率
问题描述
我曾经在 HPC 集群上运行一些 Matlab 模拟。
集群运行 SLURM。
我的 Matlab 脚本的输出之一是一个 GIF 文件,它显示了我正在模拟的内容的时间演变。GIF 文件的每一帧都是通过“getframe”命令获取的,该命令对显示进行快照。
当我在我的计算机上运行 Matlab 脚本时,GIF 文件看起来很完美,因为快照具有我计算机的分辨率。当我在 HPC 集群上运行相同的 Matlab 脚本并通过 SLURM 提交作业时,GIF 文件看起来很糟糕,因为它的分辨率非常低。毕竟,HPC 集群并没有实际的显示,也许只是一个虚拟的显示。
所以,这是我的问题:我可以在提交作业时更改虚拟显示器的分辨率,以便 Matlab 在模拟期间拍摄的快照看起来是高分辨率的吗?
解决方案
尝试在调用之前添加以下内容getframe
:
h = figure;
h.WindowState = 'maximized';
这将确保在捕获快照之前窗口最大化。然后,您应该获得更高分辨率的图像。
如果这不起作用,另一种选择是使用print将每个图像保存到磁盘,您可以在其中明确指定分辨率:
print('-dpng', '-r200', filename)
但随后您将不得不在后续步骤中合并电影中的所有文件。
推荐阅读
- python - 我如何使用 Python 处理新加坡车牌的校验和
- python - 获取分层熊猫数据框中的先前值
- excel - VBA - 搜索列名,完全删除列
- java - 未找到休眠配置文件
- python - 使用请求包时的 Viusal Studio python 错误(错误:json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0))
- javascript - 如何在不使用 Jquery 的情况下将类添加到 DOM 元素 - Angular 6
- python - 如果满足条件,如何使用openpyxl python删除excel中的特定行
- r - 事件(AlerKey)的相关性基于节点(区域)上的时间(First_Occurred)。由于过去的事件,哪个事件更有可能发生?
- javascript - 如何在数据库中呈现角度 ng if/show
- computer-vision - 产品扫描仪比条形码扫描仪好吗?