主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

visdiff

R2026a

比较两个文件或文件夹

描述

visdiff(filename1,filename2) 打开比较工具并显示两个文件或文件夹之间的差别。比较工具支持 MATLAB® 代码文件、ZIP 文件、MAT 文件和各种其他 MATLAB、Simulink® 和科学数据文件格式。有关完整列表,请参阅 输入参量。

使用 visdiff 来比较两个 Simulink 模型,确定变化并合并差异。有关详细信息,请参阅模型比较 (Simulink)。

示例

visdiff(filename1,filename2,type) 使用指定的比较类型比较两个文件。如果未指定类型,visdiff 将使用适合选定文件的默认比较类型。您只能使用此语法来比较文件。

示例

comparison = visdiff(___) 比较两个文件,并返回包含指定文件之间差别的比较对象。可以使用比较对象在命令行中控制比较,例如,通过应用过滤器和发布比较报告来进行控制。此语法不会打开比较工具,也不要求显示。它对于为持续集成 (CI) 工作流自动创建比较报告特别有用。并非所有文件类型都支持此语法。支持的文件包括 Simulink 模型、Simulink 数据字典、需求和链接集文件、纯文本文件、MATLAB 脚本、MATLAB App、MAT 文件和基于文本的源代码文件。

示例

示例

全部折叠

此示例说明如何使用相对路径和完整路径来比较两个文件。

比较当前文件夹中的两个文件 lengthofline.m 和 lengthofline2.m。

visdiff("lengthofline.m","lengthofline2.m")

使用完全限定的文件名比较两个 MAT 文件 gatlin.mat 和 gatlin2.mat。

visdiff(fullfile(pwd,"supportingFiles","mymatFiles","gatlin.mat"), ...
fullfile(pwd,"supportingFiles","mymatFiles","gatlin2.mat"))

将 lengthofline.m 和 lengthofline2.m 两个文件作为二进制文件进行比较。

如果不指定比较类型,visdiff 将使用默认的文本比较类型来比较这两个文件。通过更改为二进制文件比较类型,可以检查行尾字符之类的差别。

visdiff("lengthofline.m","lengthofline2.m","binary")

在比较某些文件类型时,您可以通过指定输出参量以命令行方式来操作比较报告。支持的文件包括 Simulink 模型、Simulink 数据字典、需求和链接集文件、纯文本文件、MATLAB 脚本、MATLAB App、MAT 文件和基于文本的源代码文件。

例如,比较两个 Simulink 模型文件并返回一个比较对象。

comparison = visdiff(modelname1,modelname2);

您可以禁用模型比较报告中的所有过滤器。

filter(comparison,"unfiltered");

要将比较报告发布为文件,请对比较对象使用 publish。发布的报告的默认格式为 HTML。publish 将文件保存在当前文件夹中,如 filename1_filename2.html。

file = publish(comparison);
web(file)

创建名为 myreport 的 PDF 比较报告。将该报告保存到 comparisonresults 文件夹。

file = publish(comparison,format="PDF",Name="myreport",OutputFolder="comparisonresults");
web(file)

支持的报告格式有 HTML、PDF、PDF/A 和 DOCX。

注意

Linux® 上不支持 PDF/A 比较报告。

有关如何使用 visdiff 在持续集成工作流中生成报告的说明,请参阅Attach Model Comparison Report to GitHub Pull Requests (Simulink)。

输入参数

全部折叠

文件或文件夹名称,指定为字符向量或字符串。filename 可以包含当前文件夹的相对路径或完整路径。

下表显示支持的文件类型。

文件类型文件扩展名
MATLAB
MATLAB 代码文件.m
MATLAB 实时代码文件.mlx, .m (自 R2025a 起)
纯文本任一值
基于文本的源代码.c、.cpp、.java 等
MATLAB App.mlapp
二进制任一值
文件夹-
ZIP 文件.zip
MATLAB 图窗.fig
MAT 文件.mat
工程定义文件.xml
工程存档.mlproj
依赖关系 GraphML.graphml
Simulink
Simulink 模型.slx, .mdl
Simulink 模型模板.sltx
Simulink 工程模板.sltx
Simulink 数据字典.sldd
其他产品
Requirements Toolbox™.slreqx.有关详细信息,请参阅创建并保存可打印的比较结果报告 (Requirements Toolbox)。
Requirements Toolbox 链接.slmx.有关详细信息,请参阅创建并保存可打印的比较结果报告 (Requirements Toolbox)。
Simulink Test™.mldatx
SimBiology® 模型.sbproj
System Composer® 模型.slx
Simscape® 文件.ssc
科学数据 (自 R2026a 起)
HDF5 文件.h5, .hdf5
NetCDF 文件.nc
SOFA 文件.sofa

您还可以使用比较工具对许多其他文件扩展名进行基本比较,包括 .prj、.req、.cvf、.wrl、.x3s、.ssc、.xml 和 .tlc。

注意

对于 HDF5、netCDF 和 SOFA 文件,比较工具会显示文件架构中的差异。架构比较包括数据的层次结构以及属性和元数据,但不包括文件中存储的实际数据。

您可以使用比较工具将 HDF5 文件、netCDF-4 文件、SOFA 文件和版本 7.3 的 MAT 文件相互比较。当您将版本 7.3 的 MAT 文件与 HDF5、netCDF-4 或 SOFA 文件进行比较时,仅比较文件的架构。 (自 R2026a 起)

比较类型,指定为 "text" 或 "binary"。某些比较并非所有的比较类型都支持。如果您指定了不支持的比较类型,MATLAB 将显示错误。

要检查文本文件的差别,如行尾字符的差别,请指定 "binary" 比较类型。

输出参量

全部折叠

比较对象,用于以命令行方式对比较结果进行操作,例如,可以应用过滤选项和发布比较报告。支持的文件包括 Simulink 模型、纯文本文件、MATLAB 脚本、MATLAB App 和基于文本的源代码文件。

替代功能

您可以通过交互方式打开比较工具。

  • MATLAB 编辑器 - 在 MATLAB 编辑器或实时编辑器中打开文件。在编辑器或实时编辑器工具条中,选择比较 > 比较项。然后,选择要比较的文件。

    您还可以将文件与自动保存的版本或磁盘上的保存版本进行比较。在编辑器选项卡中,选择比较 > 与磁盘上的版本进行比较或与备份比较。如果您的文件已修改,编辑器会在比较之前保存该文件。与磁盘上的版本进行比较和与备份比较选项仅在禁用自动保存对文件的更改选项时可用。要禁用该选项,请转到主页选项卡,然后在环境部分中点击设置。然后,选择编辑器/调试器,并清除在文件外点击时保存更改。此选项在实时编辑器中不可用。

  • Simulink 编辑器 - 要将在 Simulink 编辑器中打开的一个模型与磁盘上的另一个模型进行比较,请在建模选项卡的评估和管理部分中,点击比较项。

  • “文件”或“工程”面板 - 要比较磁盘上的两个文件,请选择这两个文件。然后右键点击并选择比较选定的文件/文件夹。比较工具先在左侧打开您选择的文件。

版本历史记录

在 R2008b 中推出

全部展开