如何在MATLAB中进行线程化?我想同时对两个变量运行一个函数。我该怎么做?
答案 0 :(得分:7)
并行工具箱有一些可以帮助您的工具。在下面找到从Matlab帮助
粘贴的一些示例matlabpool % Use default parallel configuration
spmd % By default uses all labs in the pool
INP = load(['somedatafile' num2str(labindex) '.mat']);
RES = somefun(INP);
end
然后,实验室中RES
的值可以从客户端访问,实验1中为RES{1}
,实验室2为RES{2}
等。
您也可以将parfor
视为for
的简单并行替代。希望这有助于即使它不是您正在寻找的。 p>
答案 1 :(得分:1)
我不相信MATLAB有任何内置的多线程支持。 这来自我最近与同事的对话以及quick google search
希望这有帮助。
答案 2 :(得分:0)
您可以使用MEX文件和std::thread
(请参阅here)。
我没有尝试从MEX文件中调用mexEvalString
,很可能会导致运行时错误或冻结MATLAB执行时间。但是如果你能用C ++编写那段特定的代码,它可能就是你要找的东西。