MATLAB中的多线程

时间:2010-12-20 23:27:12

标签: multithreading matlab

我已经阅读了MATLAB关于多线程的信息以及它在某些功能中的内置方式。但是,我的要求是不同的。 说,我有3个函数:fun1(data1),fun2(data2),fun3(data3)....我可以在这些函数之间实现多线程吗?我实际上有300多个使用大量数据的函数。多线程可以帮助我减少很多时间。请建议一个我可以进一步研究的命令或其他东西。谢谢!

2 个答案:

答案 0 :(得分:22)

如果要在不同的处理器上运行一批不同的功能,可以使用并行计算工具箱,更具体地说,使用parfor循环,但需要将这些函数作为句柄列表传递。< / p>

funList = {@fun1,@fun2,@fun3};
dataList = {data1,data2,data3}; %# or pass file names 

matlabpool open 

parfor i=1:length(funList)
    %# call the function
    funList{i}(dataList{i});
end

修改 从Matlab的R2015a matlabpool函数has been removed开始,您需要调用parpool

答案 1 :(得分:2)

尝试查看Parallel Computing Toolbox.(遗憾的是我不太熟悉它,但这似乎是正确的地方。)请看gatherparallel for-loops