我已经阅读了MATLAB有关多线程的信息,以及如何在某些函数中内置它的信息。但是,我的要求是不同的。
说,我有3个函数:fun1(data1),fun2(data2),fun3(data3)...。我可以在这些函数之间实现多线程吗?实际上,我有300多个函数使用大量数据。多线程可以帮助我节省很多时间。请提出命令或我可以进一步研究的内容。谢谢!

最佳答案

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

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

关于multithreading - MATLAB中的多线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4495000/

10-12 04:23