将 Matlab Simulink 模型保存为带有紧密边界框的 PDF

2024-02-12

给定一个 Simulink 框图(模型),我想生成一个“屏幕截图”,以便稍后在 LaTeX 文档中使用。我希望这个屏幕截图是带有紧密边框的 PDF(矢量图形,-> pdflatex),我的意思是图表周围没有不必要的空白。

我搜索了网络,搜索了 stackexchange,搜索了 matlab 文档。但到目前为止还没有成功。一些注意事项:

  1. 对于数字,这个问题是有答案的。我有一个 Simulink 框图,它是不同的(见下文)。
  2. 我知道使用其他软件的解决方案,例如pdfcrop.
  3. PDF似乎是唯一真正能生成矢量图形的驱动程序(此处为Win7上的R2013b)。 EPS 和 PS 输出似乎内部有位图。你放大,你就看到了。

我尝试过的:

1.

默认行为print

modelName = 'vdp';         % example system
load_system(modelName);    % load in background

% print to file as pdf and as jpeg
print(['-s',modelName],'-dpdf','pdfOutput1')
print(['-s',modelName],'-djpeg','jpegOutput1')

JPEG 看起来不错,边界框很紧凑。 PDF 位于看起来像 A4 或 usletter 的页面的中心。不是我想要的。

2.

打印框图有几个参数。请参阅 Simulink 参考页http://www.mathworks.com/help/simulink/slref/model-parameters.html http://www.mathworks.com/help/simulink/slref/model-parameters.html。让我们摘录一些:

modelName = 'vdp';         % example system
load_system(modelName);    % load in background

PaperPositionMode = get_param(modelName,'PaperPositionMode');
PaperUnits        = get_param(modelName,'PaperUnits');
PaperPosition     = get_param(modelName,'PaperPosition');
PaperSize         = get_param(modelName,'PaperSize');

根据文档,PaperPosition包含一个四元素向量[left, bottom, width, height]。最后两个元素指定边界框,前两个元素指定边界框左下角与纸张左下角的距离。

现在,当我打印 PDF 输出并使用尺子测量时,我发现边界框的值及其左下角的位置完全错误(是的,我已经测量过PaperUnits)。这真是太糟糕了。我可以计算出剪掉纸张的边距,以便稍后使用\includegraphics[clip=true,trim=...]{pdfpage}.

3.

当然,我最初想要的是已经裁剪过的 PDF。对于图形有一个解决方案,它是这样的:将边界框移动到纸张的左下角,然后将纸张大小更改为边界框的大小。

oldPaperPosition = get_param(modelName,'PaperPosition');

set_param(modelName,'PaperPositionMode','manual');
set_param(modelName,'PaperPosition',[0 0 oldPaperPosition(3:4)]);
set_param(modelName,'PaperSize',oldPaperPosition(3:4));

对于 simulink 模型,存在两个问题。PaperSize是模型的只读参数。并改变PaperPosition对输出完全没有影响。

我真的没有主意了。

编辑 - - - - - - - - - - - - - - - - -

好吧,为了让您及时了解最新情况:我与 Matlab 支持人员讨论了此事。

  • 在 R2013b 中,存在导致 PaperPositionMode 错误行为和 PaperPostion 边界框错误的错误。
  • 没有已知的方法可以从打印中提取比例因子。
  • 他们建议采用这种方式:Simulink --(print)--> SVG --(Inkscape)--> PDF。这种方式确实效果很好。 (正确的)边界框是 svg 节点的属性,导出到 SVG 时的比例因子始终相同。此外,Inkscape 还会生成已裁剪的 PDF。所以这个方法解决了我所有的问题,只是你需要Inkscape。

你可以试试export_fig http://www.mathworks.com/matlabcentral/fileexchange/23629-exportfig导出您的数据。所见即所得!由于所生成媒体的高质量和可移植性,此功能特别适合导出用于出版物和演示文稿的图形。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Matlab Simulink 模型保存为带有紧密边界框的 PDF 的相关文章

  • 从恶意 PDF 中提取 JavaScript

    我有一个 PDF 文件 据我所知 它包含一个 JavaScript 脚本文件 该文件会执行恶意操作 但目前还不确定具体是什么 我已经成功解压缩了 PDF 文件并获得了纯文本 JavaScript 源代码 但它的代码本身隐藏在我以前从未见过的
  • 如何将Matlab命令的输出重定向到文件? [复制]

    这个问题在这里已经有答案了 我想将 Matlab 命令的输出重定向或复制到文件中 我怎样才能做到这一点 就我而言 我想使用 UNIX 工具比较两个大型结构diff 示例 我可以在 Matlab 中执行此操作 gt gt s1 s1 a 32
  • 在 MATLAB 中绘制圆

    我被要求找到在 MATLAB 中绘制圆的不同方法 看起来很无聊 不过我可以想出一些想法 有些可能效率低下 Method 1 ezpolar x 1 Method 2 t linspace 0 2 pi 100 plot sin t cos
  • 笛卡尔散点图上的极坐标网格线

    我有一个脚本来创建散点图 使用gscatter 基于另一个脚本生成的 x y 数据 离散数据点 不连续 由于这些数据点实际上是圆形空间中某些对象的位置 因此添加极坐标网格线将使绘图更有意义 有谁知道如何在笛卡尔散点图上显示极坐标网格线 或者
  • 如何使用 PHP 制作 pdf 文件

    如何用 PHP 制作 PDF 文件 我想要制作的是学生名单 所以我想查询数据库 获取信息 并在用户单击 生成学生列表 时将其以 PDF 形式提供给用户 你有两个不错的选择 首先是用于操作 pdf 的标准 php 库 https www ph
  • Google Chrome 的互联网历史记录脚本

    我并不是在寻找 最佳 或最有效的脚本来执行此操作 但我想知道是否存在一个脚本可以从 Google Chrome 中提取一天的互联网历史记录并将其记录到 txt 文件中 我更喜欢用 Python 或 MATLAB 编写 如果你们有不同的方法
  • 有没有办法在 MATLAB 中执行函数内联?

    我可以使用什么语言功能或开箱即用的技巧来完成 MATLAB 中的函数内联 令人烦恼的是 Google 搜索 matlab 内联函数 http www google com search q matlab inline function揭示了
  • 正确重载 stringbuf 以替换 MATLAB mex 文件中的 cout

    MathWorks 目前不允许您使用cout当 MATLAB 桌面打开时 从 mex 文件中读取 因为它们已重定向 stdout 他们当前的解决方法是提供一个函数 mexPrintf 他们要求你改用 http www mathworks c
  • 如何根据字体计算字符数?

    对于给定 PDF 文件中的每个页面 可以列出所使用的字体 pdffonts f 10 l 10 file pdf name type encoding emb sub uni object ID none Type 3 Custom yes
  • 如何使用 Python 将表格从 CSV 写入 PDF [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个CSV文件包含下表 users passwords company Admin test psw test cmp test
  • 用 Java 创建 PDF 的缩略图

    我正在寻找一个 Java 库 它可以获取 PDF 并从第一页创建缩略 图 PNG 我已经看过 JPedal 但其疯狂的许可费完全令人望而却步 我目前正在使用 iText 来操作 PDF 文件 但我相信它不会生成缩略图 我可以在命令行上使用
  • ReactJS React-pdf 错误“无法加载 PDF 文件。”经过一些尝试

    我创建了一个 React js 应用程序create react app我正在尝试react pdf查看 pdf 我遇到的问题是我的代码有时有效 有时无效 当我第一次加载应用程序时 pdf 总是加载得很好 但如果我访问网站上的其他链接 ur
  • 我可以使用什么 C++ 库在 Windows 上将 PDF 转换为图像?

    我正在开展一个需要分析图像的项目 这些图像的主要来源是网络摄像头 但最近我们被要求添加对上传文件和扫描仪的支持 这在大多数情况下都很好 只是他们希望我们能够使用 PDF 格式的文档 我需要一个原始像素位图进行处理 在 Mac 上 我可以使用
  • 数组中 2 个百分位之间的平均元素

    我有 2 个长度为 200 的向量 例如 A 和 B 然后我使用以下方法找到数组 A 的每第二个百分位数 A1 prctile A 1 2 100 1 这样A1是一个长度为50的数组 现在我想找到A1中每两个元素内的A元素的平均值 即A的第
  • 比较元胞数组中的字符串

    我试图在单词列表中找到最常见的单词 到目前为止 这是我的代码 uniWords unique lower words for i 1 length words for j 1 length uniWords if uniWords j lo
  • 在 Matlab 2014b 中移动等高线图的 z 值

    我正在尝试绘制曲面图 在曲面下方我希望显示轮廓线 但我希望轮廓位于z 1而不是默认值0 我找到了之前关于这个问题的帖子here https stackoverflow com questions 8054966 matlab how to
  • MATLAB 链表

    有哪些可能的方法来实现链表MATLAB http en wikipedia org wiki MATLAB 注意 我问这个问题是为了教学价值 而不是实用价值 我意识到 如果您实际上在 MATLAB 中滚动自己的链表 那么您可能做错了什么 然
  • 未找到 EOF 标记 - 如何在 PyPDF 和 PyPDF2 中修复?

    我正在尝试使用 Python 将几个 PDF 文件合并为一个 PDF 文件 我已经尝试过 PyPDF 和 PyPDF2 在某些文件上 它们都抛出相同的错误 PdfReadError 未找到 EOF 标记 这是我的代码 page files
  • 如何使用 MigraDoc 让表情符号出现在生成的 PDF 中

    我正在尝试生成包含一些表情符号的 PDF 但没有成功 为了使其简单且可重现 这里是代码 Document document new Document Section section document AddSection Paragraph
  • 将 Matlab MEX 文件中的函数直接嵌入到 Python 中

    我正在使用专有的 Matlab MEX 文件在 Matlab 中导入一些仿真结果 当然没有可用的源代码 Matlab 的接口实际上非常简单 因为只有一个函数 返回一个 Matlab 结构体 我想知道是否有任何方法可以直接从Python调用M

随机推荐

  • 列出具有特定存储类别的 S3 存储桶对象

    从 Glacier 获取对象非常耗时 因此我决定改用 S3 IA 存储类 我需要列出存储桶中具有 Glacier 存储类的所有对象 我通过 LifeCycle 策略配置它 并将其更改为 S3 IA 有没有任何脚本或工具可以实现这一点 你可以
  • Java 机器人按键命令键

    Mac 上命令键的 VK key 代码是什么 如果存在 我试图让机器人 java 机器人 按下命令键 我正在使用命令 keyPress 并且我需要知道 Mac 上命令键的整数键码 KeyEvent VK META http docs ora
  • 禁用按钮,直到必填字段有效

    我已经搜索了这个问题的答案 但仍然无法让它工作 我想确定
  • Rails 4,将“\n”替换为“ " 用于 Excel 中的 XML 电子表格

    我正在编写一个应用程序 将某些数据导出到特定格式的 Excel 文档中 我正在使用此文档构建 XML 电子表格文件 http msdn microsoft com en us library aa140066 v office 10 asp
  • 内存映射文件线程安全吗

    我想知道您是否可以使用多线程写入单个文件内存映射文件 http en wikipedia org wiki Memory mapped file 并确保两个线程不会写入同一区域 例如 通过交错固定大小的记录 从而减轻应用程序级别同步的需要
  • 如何在没有 CLI 的情况下在 Angular 组件中使用 less

    我有一个应用程序 我必须在其中配置和使用较少的内容来实现动态主题 问题是我们没有使用 angular cli 并且这里的配置有点奇怪 所以我们手动引导 Angular 模块 以下是应用程序的配置 包 json dependencies an
  • 如何将数据导出到 Excel 文件

    我有一个 Excel 文件 其中包含数据 我想将它的一些特定行写入我通过代码创建的另一个 Excel 文件 顺便说一句 我在列表中列出了这些行的索引 我怎样才能做到这一点 MS 提供 OpenXML SDK V 2 5 请参阅https m
  • Android-如何在简单的纸张列表视图中显示图片

    我正在尝试在 SimpleAdapter 列表视图中显示图片 我将 Picasso 包含在我的项目中 但我不知道如何将 Picasso 与 SimpleAdapter 一起使用 List
  • 如何在 JavaScript 中表示代数数据类型和模式匹配

    在像 OCaml 这样的函数式语言中 我们有模式匹配 例如 我想记录用户在我的网站上的操作 操作可以是 1 访问网页 2 删除项目 3 检查其他用户的个人资料等 在 OCaml 中 我们可以编写如下内容 type Action VisitP
  • Java 2d数组作为表,打印出索引

    所以 基本上我需要将二维数组打印为表格 并在其 周围 放置索引 Random rnd new Random int array new int 5 5 for int row 0 row lt array length row for in
  • ControlTemplate.Triggers Silverlight 3 中的 WPF 等效项

    我的 WPF 应用程序中有此 controltemplate 触发器内容
  • xsd.exe 自动实现的属性

    是否可以强制 xsd exe 生成自动实现的属性 而不是 xsd exe 生成的丑陋的手动实现的代码 public abstract partial class SomeClass private string valueField
  • ETrade API无人值守认证

    背景ETrade 身份验证系统让我创建一个 RequestToken 然后执行一个授权 URL 这将打开一个 ETrade 页面 用户登录以授权其帐户上的活动 他们会收到一个 PIN 码 并将其输入到我的应用程序中 我使用 RequestT
  • izpack安装后执行脚本

    我已经制作了包含 jboss 的 jar 文件 我想在 jar 解压并完全安装在我的计算机上时启动我的 Web 应用程序 我应该在 izpack 中的哪里编写脚本或代码或 xml 标记 以便安装应用程序后standalone sh 自动运行
  • 将32位dll转换为64位dll

    当我尝试在 64 位应用程序中使用它时 我有 32 位编译的 dll 但它无法加载 所以我想将dll转换为64位 当应用程序的平台从 任何CPU 或 x64 更改为 x86 时 它工作正常 但我想在 64 位下使用它 因为我要从 ASP 页
  • 如何更改Android中的日期时间语言

    我们如何在不更改设备语言的情况下更改 Android 中的日期 时间语言 下面是我当前的代码 下面的代码根据设备语言而变化 但我想在不更改设备语言设置的情况下进行更改 公共静态字符串格式时间 日期时间 String timeFormat U
  • 使用 Windows 服务实现计划作业的最佳方式是什么

    我有一个偶尔在晚上运行的数据库作业 我需要一个 Windows 服务来定期轮询数据库 以便在 SQL 作业完成后做更多的工作 我正在寻找一个可靠的示例来编写一个调度程序 该调度程序可以优雅地失败而不会导致服务崩溃 只需将其设置为计划任务即可
  • Keras Sequential 不提供输入形状

    我目前有一个 keras 模型 如下所示 model keras Sequential model add keras layers Dense 100 activation tf nn relu model add keras layer
  • 交叉编译 PHP [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经下载了 PHP 5 4 0 源代码 将其解压并移至源文件夹中 我做了一个配置 configure build x86 64 unknown li
  • 将 Matlab Simulink 模型保存为带有紧密边界框的 PDF

    给定一个 Simulink 框图 模型 我想生成一个 屏幕截图 以便稍后在 LaTeX 文档中使用 我希望这个屏幕截图是带有紧密边框的 PDF 矢量图形 gt pdflatex 我的意思是图表周围没有不必要的空白 我搜索了网络 搜索了 st