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});
提前感谢您提供的任何帮助。我是 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});