将 MATLAB 代码链接到需求
您可以通过使用需求编辑器或在 MATLAB® 命令行中以编程方式,将需求链接到 MATLAB 代码和纯文本外部代码(如 C 代码)。您还可以在 MATLAB Function (Simulink) 模块中创建指向 MATLAB 代码的链接。您可以在 MATLAB 编辑器或需求编辑器中查看、编辑和删除代码链接。
创建指向 MATLAB 代码或纯文本外部代码的链接
您可以通过编程方式或使用需求编辑器创建指向 MATLAB 代码或纯文本外部代码的链接。
当您创建指向代码的链接时,Requirements Toolbox™ 会创建与所选行相对应的 slreq.TextRange 对象。这些 slreq.TextRange 对象被称为行范围。
要以编程方式创建链接,请创建 slreq.TextRange 对象,然后在创建链接时使用该对象作为链接源。在同一个 MATLAB 代码文件或纯文本外部代码文件中创建多个 slreq.TextRange 对象时,slreq.TextRange 对象的行号不能重叠。
使用需求编辑器创建链接
要使用需求编辑器创建基于选择的代码链接:
在 MATLAB 编辑器中,打开 MATLAB 代码文件或纯文本外部代码文件。
注意
您无法在 MLX 文件中创建指向 MATLAB 代码的链接。
选择您要链接的代码行。
在需求编辑器中,加载您想要链接的需求集。
选择要链接的需求。
在链接部分中,依次点击添加链接 > 从 MATLAB 编辑器中所选内容链接。
或者,在 MATLAB 编辑器中,右键点击选定的代码范围并选择 需求 > 链接到需求浏览器中的所选内容。
以编程方式创建链接
假设您想以编程方式创建指向名为 myAdd 的 MATLAB 函数的链接。
function y = myAdd(u,v) y = u + v; end

要在 MATLAB 命令行创建链接:
使用
slreq.createTextRange创建一个slreq.TextRange对象,代表您想要链接到的代码行。lr = slreq.createTextRange("myAdd.m",2);使用
slreq.find、find或slreq.getCurrentObject来获取您想要链接的需求的句柄。req = slreq.find(Type="Requirement",Summary="Add u and v");
使用
slreq.createLink创建链接。myLink = slreq.createLink(lr,req);
创建指向 MATLAB Function 模块的链接
使用 MATLAB Function 模块编辑器 (Simulink)创建指向 MATLAB Function 模块中的代码行的链接:
在需求编辑器中,加载您想要链接到的需求集。
选择要链接的需求。
在 Simulink® 模型中,打开 MATLAB Function 模块。
选择您要链接的代码行。
右键点击选定的代码范围并选择 需求 > 链接到需求浏览器中的所选内容。
注意
链接到 MATLAB Function 模块内的 MATLAB 代码行的需求会出现在 HTML 需求可追溯性报告中,但不会出现在 Simulink Report Generator™ Web 视图中。请参阅创建和使用模型的 Web 视图 (Simulink Report Generator)。
创建外部文档中需求的链接
要创建从 MATLAB 代码到外部文档中的需求的链接:
在以下外部文档之一中选择一个需求:
Microsoft® Word
Microsoft Excel®
IBM® DOORS®
IBM DOORS Next
在 MATLAB 编辑器中,打开 MATLAB 代码文件或纯文本外部代码文件。
注意
您无法在 MLX 文件中创建指向 MATLAB 代码的链接。
选择您要链接的代码行。
右键点击选定的代码范围并选择需求。根据需求文档的类型,选择以下选项之一:
链接到 Word 中的所选内容
链接到 Excel 中的所选内容
链接到 DOORS 中的所选内容
链接到 DOORS Next 中的所选项
保存更改。有关详细信息,请参阅保存链接。
有关如何配置 Requirements Toolbox 以与这些第三方产品配合使用的详细信息,请参阅配置 Requirements Toolbox 以便与 Microsoft Office 和 IBM DOORS 交互和配置 IBM DOORS 以便与 Requirements Toolbox 集成。
查看和编辑链接及行范围
要在 MATLAB 编辑器中查看当前文件的链接和行范围,请在编辑器中右键点击并选择需求 > 打开需求可追溯性面板 (自 R2025a 起)来打开需求可追溯性。当前文件中的行范围具有行范围图标
,而链接目标具有链接目标图标
。

您还可以通过启用需求高亮显示功能,在 MATLAB 编辑器中查看关联的代码范围。在编辑器中右键点击,然后选择需求 > 启用需求突出显示。
要编辑链接,请使用需求编辑器。有关详细信息,请参阅查看和编辑链接。
在 MATLAB 编辑器中编辑行范围
要在 MATLAB 编辑器中编辑某一段落的行号:
或者,您也可以在编辑器中右键点击,然后选择需求 > 启用需求突出显示,以此突出显示关联的行范围。
程序化编辑行范围
要在 MATLAB 命令行编辑 slreq.TextRange 对象的行:
在 MATLAB 编辑器中打开 MATLAB 代码文件或纯文本外部代码文件。
open("myAdd.m");通过将文件名以及行范围的开始和结束的行号传递给
slreq.getTextRange函数来获取 MATLAB 代码文件中现有的slreq.TextRange对象。lr = slreq.getTextRange("myAdd.m",[1 2]);使用
setLineRange方法修改行范围。setLineRange(lr,1);
保存更改。
myLinkSet = slreq.find(Type="LinkSet",Artifact=lr.Artifact); save(myLinkSet);
MATLAB 编辑器更新了代码范围突出显示。或者,您可以使用 show、getText 或 getLineRange 确认更改。
删除链接和未使用的行范围
您可以在 MATLAB 编辑器、需求编辑器、需求可追溯性面板或 MATLAB 命令行中删除指向 MATLAB 代码的链接。
如果您在 MATLAB 编辑器中删除代码范围的链接,您可以删除编辑器中、需求可追溯性面板中或 MATLAB 命令行中的未使用行范围。
删除链接
要删除已加载链接集中单个链接,请使用需求编辑器。有关详细信息,请参阅删除链接和链接集。
要在 MATLAB 编辑器中删除当前文件中的单个链接,请使用需求可追溯性面板。有关详细信息,请参阅删除链接。
要在 MATLAB 编辑器中删除某一行范围的所有入站和出向链接,请右键点击高亮显示的代码范围,然后选择需求 > 删除所有链接。
要程序化地删除链接,请获取一个 slreq.Link 对象的句柄,并使用 remove 函数。或者,打开一个包含入站或出向链接的文件,并在 MATLAB 编辑器中打开它。然后,使用 slreq.getTextRange 函数获取一个 slreq.TextRange 对象的句柄。使用 deleteLinks 函数删除目标的链接。
删除行范围
要在 MATLAB 编辑器中删除当前文件中的行范围,请使用需求可追溯性面板。有关详细信息,请参阅删除链接。
要程序化地删除行范围,请在 MATLAB 编辑器中打开包含入站或出向链接的文件。然后,使用 slreq.getTextRange 函数返回一个 slreq.TextRange 对象。使用 remove 函数删除代码范围。
修复链接
如果您删除了包含出向链接的行范围,或者软件无法在 MATLAB 代码文件或纯文本文件中找到某个行范围,则指向该行范围的链接将变为未解析状态。您可以修复未解决的链接,或者如果它们不再需要,可以删除它们。有关详细信息,请参阅解析链接。
要查看未解析的链接,请在需求编辑器中点击显示链接。未解析的链接显示未解析的链接图标
。
孤链是指来源无效的链接。要查看文件中的孤立链接,请使用需求可追溯性面板。面板以红色文字显示孤链。
保存链接
要保存创建、编辑、删除或修复链接或线段范围时对链接集所做的更改,请使用以下方法之一:
在 MATLAB 编辑器中,右键点击并选择 需求 > 保存链接。
在需求编辑器中,点击显示链接。选择链接集,然后点击保存。
在 MATLAB 命令行中,使用
save。
