本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。
将数据写入到文件
Simulink / Sinks
HDL Coder / Sinks
To File 模块将输入信号数据写入 MAT 文件。此模块以增量方式写入到输出文件中,在仿真期间的内存开销极少。如果仿真开始时已经存在输出文件,模块将覆盖该文件。暂停仿真或仿真完成时,文件会自动关闭。如果仿真异常终止,To File 模块将保存它在异常终止时间点之前记录的数据。
To File 模块图标会显示输出文件的名称。
如果使用 Configuration Parameters > Data Import/Export > Logging intervals 参数指定数据记录间隔,则 To File 模块仅记录时间间隔内的数据。例如,如果时间间隔为空 ([]
),模块则不会记录任何数据。此模块将记录的数据存储在与模块关联的文件中,而不是存储在您为 Single simulation output 参数指定的变量中。
对于可变步长求解器,要控制 To File 模块可用的数据量,请使用 Configuration Parameters > Data Import/Export > Additional parameters > Output options 参数。例如,要在多次仿真的相同时间点写入数据,请选择 Produce specified output only
选项。
模块参数还控制保存的数据量。请参阅Decimation, DecimationDecimationDecimation和Sample time, Sample timeSample timeSample time。
暂停仿真后,不要更改 To File 模块记录的任何文件。例如,不要使用 MATLAB® save
命令保存此类文件。更改文件可能会导致恢复仿真时出现错误。如果要在暂停后更改文件,请复制文件并使用文件副本。
如果通过仿真步进器暂停,To File 模块将捕获暂停时间点之前的仿真数据。当您步退时,To File 数据文件将不再包含上次输出在减少时间之后的任何仿真数据。
当引用模型中包含 To File 模块时,模型必须为单实例模型。模型架构中只能存在此模型的一个实例。有关详细信息,请参阅模型重用。
当您在包含很多时间步的长时间仿真中记录很多信号时,如果 MATLAB 遇到内存问题,请考虑记录到持久存储。当您记录到持久存储时,Dataset
格式的记录数据将存储在 MAT 文件中。与记录到持久存储相比,为信号连接 To File 模块具有以下缺点:
它是一种逐信号处理方法,每个信号上可能会连接多个 To File 模块,从而使模型变得杂乱无序。
它会为每个 To File 模块创建一个单独的 MAT 文件,而记录到持久存储只使用一个 MAT 文件。
有关详细信息,请参阅Log Data to Persistent Storage。
为了避免实时压缩数据产生的开销,To File 模块将数据写入到未压缩的 7.3 版 MAT 文件中。要压缩 MAT 文件中的数据,请在 MATLAB 中加载并保存该文件。重新保存的文件比 To File 模块创建的原始 MAT 文件小,因为 Save 命令会压缩 MAT 文件中的数据。