发布函数时在Matlab中执行示例代码

时间:2016-07-19 19:46:01

标签: matlab syntax publish commenting

背景 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));

问题 发布函数是否可以自动评估函数注释中的代码snippits并将这些输出包含在html文件中?

1 个答案:

答案 0 :(得分:0)

matlab发布商明确表示要在脚本上执行,而不是在功能文件上执行,因为它的目的是生成一个报告,其中个别部分(标有{{ 1}}}成为标题,%%下的% 开头的行成为该部分的描述文本。 之后之后的任何内容(代码和注释行)将由发布者在一个漂亮的小方框中显示为该部分运行的代码,然后将显示该代码的结果在该框下面,但包含在他们的部分中。

将代码放在该部分的 description 文本中,期望它运行是违反直觉的。事实上,您可能希望在描述中添加代码段的唯一原因是,如果您想提及某些代码而不运行它。 出于这个原因,发布者提供了特殊的语法(缩进2个空格用于单调文本,3个空格用于为代码添加语法高亮)。

Publisher是一个不错的工具,但不幸的是它相当有限。对我来说,主要的限制是你不能选择显示结果的代码部分和不显示结果的代码部分;它全有或全无。因此我通常会使用"乳胶+保存的matlab数字+ makefile"而是采用灵活的报告方式。但如果你想要快速和肮脏的东西,出版商是很好的;例如它有助于记录你工作的日志/日记。

无论如何,要回答你的问题,不,你不能将代码放在 description 中并期望它能够运行。您也不希望发布'功能;事实上,一个函数文件首先对发布做出响应,这可能更多地是因为发布者被调用的副作用更多。