Matlab中的并行函数运行

Matlab中的并行函数运行,matlab,parallel-processing,Matlab,Parallel Processing,我试图用下面的简单代码进行测试,但错误是“输出参数太多” 主要是 x = 0:0.01:10; y1 = sin(x); y2 = cos(x); funcs = {@func1, @func2} ; % let fun1, fun2 be two functions arguments = {x y1;x y2} ; % write the inputs of each function solutions = cell(1,2); % initia

我试图用下面的简单代码进行测试,但错误是“输出参数太多”

主要是

x = 0:0.01:10;
y1 = sin(x);
y2 = cos(x);
funcs = {@func1, @func2} ;   % let fun1, fun2 be two functions 
arguments = {x y1;x y2} ;   % write the inputs of each function 
solutions = cell(1,2);                 % initialize the solution 
% use of parfor 
parfor ii = 1:2
      solutions{ii}=funcs{ii}(arguments{ii,:});
end

请帮忙

调用函数的方式

solutions{ii}=funcs{ii}(arguments{ii,:});
需要一个输出,您正在将其分配给
解决方案{ii}

这在普通循环中不起作用,甚至在没有循环的情况下也不起作用,您试图编写
parfor
的事实在这里并不重要

您的函数定义为

function func1(x,y)
% ...
function func2(x,y)
% ...
这两个都没有输出参数,因此不清楚您希望为
解决方案{ii}
分配什么-这与您看到的错误消息“输出参数太多”完全匹配

如果您希望从函数中得到一个输出,那么就声明一个

function z = func1(x,y)
    z = x + y;
    % other stuff
end
否则,不要在循环中请求输出

parfor ii = 1:2        
    funcs{ii}(arguments{ii,:});
end

函数没有输出参数,但函数调用有输出参数。(
solutions{ii}
)。你不能在
parfor
循环中绘图。谢谢,@David你说得对,我应该创建输出变量或删除解决方案{}。@Cris Luengo,如果我想同时绘图或运行动画,我该怎么做?如果你有经验,请分享。
parfor ii = 1:2        
    funcs{ii}(arguments{ii,:});
end