You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab实时脚本如何实现不依赖运行次数的图表自动编号?

Matlab 实时脚本图表自动编号解决方案

以下提供两种适配需求的实现方案:

方案1:轻量自定义函数实现(无需额外工具箱)

适合不需要复杂排版、不想依赖Report Generator工具箱的场景

  • 第一步:在当前工作目录新建get_fig_num.m函数,代码如下:
function num = get_fig_num(reset_flag)
persistent FIG_COUNT
if nargin>0 && isequal(reset_flag, true)
    FIG_COUNT = 0;
end
FIG_COUNT = FIG_COUNT + 1;
num = FIG_COUNT;
end
  • 第二步:在实时脚本第一个代码段的首行添加get_fig_num(true);,仅在全量运行脚本时重置计数器,单独运行后续代码段不会触发重置。
  • 第三步:所有绘图代码统一调用该函数生成编号:
plot(data_1)
title(['Figure ' string(get_fig_num) ': 你的图表标题'])
  • 静态图片插入方法:在静态图片对应的位置插入单行代码段get_fig_num;,运行后得到的数值就是当前位置的图表编号,直接给静态图设置对应序号的标题即可。
  • 导出PDF前选择「运行所有代码后导出」,即可保证编号完全按内容出现顺序排列,不会出现错乱。

方案2:Report Generator工具箱原生实现(完全匹配Word自动编号逻辑)

你查阅的官方方案实际可适配实时脚本PDF导出需求,无需生成中间Word/HTML文件,编号完全不受代码段运行次数影响,支持自动适配图表增删、顺序调整:

  • 第一步:在实时脚本开头初始化报告对象:
import mlreportgen.report.*
import mlreportgen.dom.*
rpt = Report('export_output', 'pdf');
open(rpt);
  • 第二步:Matlab生成的绘图按以下格式添加,自动生成连续编号:
plot(data_n)
fig_obj = Figure(gcf);
fig_obj.Caption = '你的图表标题'; % 无需手动加序号,系统自动按插入顺序生成
add(rpt, fig_obj);
close(gcf); % 无需展示独立绘图窗口
  • 第三步:静态图片按以下格式插入,自动继承同一编号序列:
img_obj = Image('本地静态图片路径.png');
img_obj.Caption = '静态图片标题';
add(rpt, img_obj);
  • 第四步:在脚本末尾添加代码生成最终PDF:
close(rpt);
rptview(rpt);

该方案下所有图表、表格的编号逻辑和Microsoft Word完全一致,导出时会按内容在实时脚本中的出现顺序统一计算编号,和代码段的运行次数、运行顺序完全无关。

内容的提问来源于stack exchange,提问作者Yijapod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:24:02