Matlab parfor不从两个功能同时打印到屏幕?
我正在尝试测试一个非常简单的parfor函数,它调用另外两个函数,每个函数打印一个数字:1和2,因此我希望它会以随机顺序将如下内容打印到控制台: 1. 2. 2. 1. 2. 1. 1. 二, 但它总是先完成一个函数,然后再完成另一个函数,并给我有序的输出: 1. 1. 1. 1. 2. 2. 2. 二, 所以对我来说,帕弗似乎不是平行的。。。 这是我的密码Matlab parfor不从两个功能同时打印到屏幕?,matlab,parfor,Matlab,Parfor,我正在尝试测试一个非常简单的parfor函数,它调用另外两个函数,每个函数打印一个数字:1和2,因此我希望它会以随机顺序将如下内容打印到控制台: 1. 2. 2. 1. 2. 1. 1. 二, 但它总是先完成一个函数,然后再完成另一个函数,并给我有序的输出: 1. 1. 1. 1. 2. 2. 2. 二, 所以对我来说,帕弗似乎不是平行的。。。 这是我的密码 function mainfunction(hObject, eventdata, handles) matlabpool ('open'
function mainfunction(hObject, eventdata, handles)
matlabpool ('open',2);
x=1;
y=2;
parfor i=1:2
if(i==1)
function1(x);
else
function2(y);
end
end
matlabpool close;
function function1(x)
for i=1:100
x
end
function function2(y)
for i=1:100
y
end
有人知道为什么这不起作用吗?谢谢技术原因是您没有手动将输出刷新到命令窗口<代码>暂停为系统提供了执行此操作的时间,但这可能有点麻烦,除非您不关心延迟是什么。通常使用的一种可能更快的方案是调用(
pause
隐式调用)。很好地总结了这个函数的用法。在某些情况下同时使用drawnow
和pause
。更有趣的是。您的函数1
和函数2
执行得太快,看不到这一点。尝试在函数中添加暂停
,您将看到您认为应该看到的行为。是的,这似乎是问题所在,谢谢