Matlab批处理不将参数传递给函数

Matlab batch not passing arguments to function

提前感谢您提供的任何帮助。我是 Matlab 的新手,一直坚持使用批处理命令将参数传递给函数。我已尝试尽可能简化示例。

按照文档,我可以让它与内置函数一起工作:

>> 
>> j = batch(@zeros,1,{10,1});
>> a=fetchOutputs(j)

a =

  1×1 cell array

    {10×1 double}

>> a{1}

ans =

     0
     0
     0
     0
     0
     0
     0
     0
     0
     0

然后我创建了一个简单的独立函数runTest.m:

function result = runTest(n1,n2) 
result = zeros(n1,n2);
end

它适用于直接调用:

>> a=runTest(5,1)

a =

     0
     0
     0
     0
     0

但是,它不能使用批处理:

>> j = batch(runTest,1,{5,1});
Not enough input arguments.

Error in runTest (line 2)
result = zeros(n1,n2);
 

有什么建议吗?谢谢。

当你这样做时

j = batch(runTest,1,{5,1});

然后该语句的 runTest 部分尝试调用函数 runTest 而没有输入参数。这就是错误发生的地方。它永远不会调用 batch.

就像几乎所有其他编程语言一样,函数调用的参数在函数被调用之前计算,计算 runTest 与计算 runTest() 相同,MATLAB 不区分两人

您打算写的是

j = batch(@runTest,1,{5,1});