Error "Not enough input arguments" when using publish tab (function with input arguments)

15 次查看(过去 30 天)
I'm trying to publish a function with input arguments. Here's a simple test file:
______
function y=mytest(a,b)
y=a+b;
end
______
Typing "mytest(3,4)" at the command prompt works as expected.
To publish, I select "Edit Publishing Options" in the Publish tab, then type "mytest(3,4)" in the MATLAB expression box(with output file format PDF) and hit the "Publish" button and get this error:
Not enough input arguments. -> Error in mytest (line 2) -> y=a+b;
This approach used to work, a few years ago, but for some reason no longer works. I'd prefer to be able to use the Publish tab rather than running "publish(...) " from the command window, as I'm trying to find an EASY way for beginning students to accomplish this to submit their homework.

回答(1 个)

Ayush Yadav
Ayush Yadav 2022-9-19
Hi Michelle,
You should use the default publishing preferences if your code requires no input arguments.
However, if your code requires input arguments, or if you want to specify output settings, code execution, or figure formats, then specify a custom configuration.
The following page describes how to specify a custom configuration:
  2 个评论
Michelle Ghrist
Michelle Ghrist 2023-3-4
Here's what I took away and was able to get working:
To publish a function m-file where you send inputs or outputs to/from your function (or to run something more than just the function), create a script (non-function) file that contains your function file at the bottom. At the top of the script file, give the command(s) that call your function. In this way, you can call the function multiple times with different inputs. For example, I saved this file as mytest.m and published it; it runs my function addt multiple times.
addt(3,4)
addt(5,6)
function y=addt(a,b)
y=a+b;
end
[You can have multiple "subfunctions" at the bottom of a script file.]

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by