1

我有一个 .m 脚本文件,其中包含我 95% 的工作。我的部分任务是编写一个执行特定计算的函数,然后将该函数用于各种示例。

我为函数创建了一个单独的 .m 文件,并以函数命名。然后我在我的主 .m 脚本中使用该函数,一切正常。我发布了 .m 脚本,一切看起来都很好。

但是,它不包括我创建的函数。由于这是我工作的一部分,我需要将它与我的主脚本文件一起提交。我认为我需要单独发布它,因为我看不到将它包含在原始出版物中的方法。

这是我的matlab函数

%% Function rvm
function [y1,y2] = rvm(x,y)
    discr = sqrt((x^2)-(4*y));  
    y1 = (-x-discr)/2;
    y2 = (-x+discr)/2;
end

这是我在发布时遇到的错误:

Not enough input arguments.

Error in rvm(line 4)
    discr = sqrt((x^2)-(y*c));  

我没有广泛使用matlab,从那时起已经有一段时间了,所以我在调试这个问题时遇到了一些麻烦。

我很困惑这怎么会给我一个错误,因为我的主脚本发布时没有错误并且可以很好地利用该功能。语法似乎也很好......

4

2 回答 2

2

或者您可以简单地将以下标记添加到您的主脚本中:

%%
% <include>rvm.m</include>

这将使用 Matlab 语法着色来渲染函数的代码。

于 2017-02-22T18:05:44.843 回答
0

问题是,默认情况下,将在没有导致错误的输入参数publish的情况下调用您的函数。如果您想为您的工作分配值并在您的工作中发布,您可以使用选项 struct to 指定它,特别是选项xypublishcodeToEvaluate

opts = struct('codeToEvaluate', 'x = 1; y = 2;');
publish('rvm', opts)

在此处输入图像描述

或者,您可以使用其中一种文件交换提交,它允许您在已发布的输出中包含子功能。

于 2017-02-06T19:19:35.293 回答