发布matlab函数时遇到问题

时间:2017-02-06 19:12:13

标签: matlab matlab-struct

我有一个.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,从那时起已经有一段时间了,所以我在调试这个问题时遇到了一些麻烦。

我很困惑这可能会给我一个错误,因为我的主脚本发布时没有错误并且使用了函数。语法似乎也很好......

1 个答案:

答案 0 :(得分:0)

问题是,默认情况下,publish会使用无输入参数调用您的函数,这会导致错误。如果要将值分配给xy以便在工作中发布,可以使用options publish指定结果,特别是codeToEvaluate选项

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

enter image description here

或者,您可以使用file exchange submissions之一,允许您在已发布的输出中包含子功能。