发布函数时在 Matlab 中执行示例代码
Execute Example Code in Matlab when Publishing a Function
背景
Matlab 有一个发布函数,它根据注释的语法输出一个,比方说,.html 文件。包含示例代码的部分由“%”后跟三个空格表示。下面可以看到一个示例函数,发布函数生成的.html文件可以看到here.
function randomImage = GenerateRandomImage(n)
%% TestFunction
% generates a random image
%
% randomImage = GenerateRandomImage(n) returns an nxn array of random pixels
%
%% Example
% randomImage = GenerateRandomImage(10);
% figure; imagesc(abs(randomImage));
randomImage = rand(n);
end
Matlab 不会自动计算示例代码,除非我创建一个单独的脚本并明确未提交示例代码。下面是一个示例脚本。这一次,它自动包含该脚本的输出,例如此处显示的示例脚本生成的图像 here.
%% TestFunction
% generates a random image
%
% randomImage = GenerateRandomImage(n) returns an nxn array of random pixels
%
%% Example
randomImage = GenerateRandomImage(10);
figure; imagesc(abs(randomImage));
问题
发布函数是否可以自动评估函数注释中的代码片段并将这些输出包含在 html 文件中?
matlab 发布器明确意味着要在 脚本 上执行,而不是函数文件,因为它的目的是生成报告,其中各个 部分 (标有%%
)成为标题,%
开头的行立即在%%
下成为描述 该部分的文本。 after 之后的任何内容,包括代码和注释行,都将由发布者在一个漂亮的小框中显示为该部分的 运行 代码,然后是该代码的结果将显示在该框下方,但包含在它们的部分中。
将代码放在该部分的 描述 文本中,期望它是 运行 是 counter-intuitive。事实上,您可能想要在描述中放置代码片段的唯一原因是如果您想提及一些代码 而没有 运行 。
出于这个原因,出版商提供了特殊的语法(单字文本缩进 2 个空格,3 个空格添加 syntax-highlighting 到您的代码)。
Publisher 是一个不错的工具,但遗憾的是它的功能相当有限。对我来说主要的限制是你不能选择哪些代码部分显示结果,哪些不显示;全有或全无。因此,我通常使用 "latex + saved matlab figures + makefile" 方法来获取灵活的报告。但是,如果您想要快速而肮脏的东西,出版商会很好;例如这对保存工作日志/日记很有好处。
无论如何,要回答您的问题,不,您不能将代码放在 描述 中并期望它成为 运行。您也不期望 'publish' 函数;函数文件首先响应发布这一事实可能更多地是 side-effect 发布者如何被调用的原因。
背景 Matlab 有一个发布函数,它根据注释的语法输出一个,比方说,.html 文件。包含示例代码的部分由“%”后跟三个空格表示。下面可以看到一个示例函数,发布函数生成的.html文件可以看到here.
function randomImage = GenerateRandomImage(n)
%% TestFunction
% generates a random image
%
% randomImage = GenerateRandomImage(n) returns an nxn array of random pixels
%
%% Example
% randomImage = GenerateRandomImage(10);
% figure; imagesc(abs(randomImage));
randomImage = rand(n);
end
Matlab 不会自动计算示例代码,除非我创建一个单独的脚本并明确未提交示例代码。下面是一个示例脚本。这一次,它自动包含该脚本的输出,例如此处显示的示例脚本生成的图像 here.
%% TestFunction
% generates a random image
%
% randomImage = GenerateRandomImage(n) returns an nxn array of random pixels
%
%% Example
randomImage = GenerateRandomImage(10);
figure; imagesc(abs(randomImage));
问题 发布函数是否可以自动评估函数注释中的代码片段并将这些输出包含在 html 文件中?
matlab 发布器明确意味着要在 脚本 上执行,而不是函数文件,因为它的目的是生成报告,其中各个 部分 (标有%%
)成为标题,%
开头的行立即在%%
下成为描述 该部分的文本。 after 之后的任何内容,包括代码和注释行,都将由发布者在一个漂亮的小框中显示为该部分的 运行 代码,然后是该代码的结果将显示在该框下方,但包含在它们的部分中。
将代码放在该部分的 描述 文本中,期望它是 运行 是 counter-intuitive。事实上,您可能想要在描述中放置代码片段的唯一原因是如果您想提及一些代码 而没有 运行 。 出于这个原因,出版商提供了特殊的语法(单字文本缩进 2 个空格,3 个空格添加 syntax-highlighting 到您的代码)。
Publisher 是一个不错的工具,但遗憾的是它的功能相当有限。对我来说主要的限制是你不能选择哪些代码部分显示结果,哪些不显示;全有或全无。因此,我通常使用 "latex + saved matlab figures + makefile" 方法来获取灵活的报告。但是,如果您想要快速而肮脏的东西,出版商会很好;例如这对保存工作日志/日记很有好处。
无论如何,要回答您的问题,不,您不能将代码放在 描述 中并期望它成为 运行。您也不期望 'publish' 函数;函数文件首先响应发布这一事实可能更多地是 side-effect 发布者如何被调用的原因。