如何在MATLAB中进行线程化?

时间:2010-04-26 12:00:38

标签: matlab function multithreading parallel-processing

如何在MATLAB中进行线程化?我想同时对两个变量运行一个函数。我该怎么做?

3 个答案:

答案 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的简单并行替代。希望这有助于即使它不是您正在寻找的。

答案 1 :(得分:1)

我不相信MATLAB有任何内置的多线程支持。 这来自我最近与同事的对话以及quick google search

希望这有帮助。

答案 2 :(得分:0)

您可以使用MEX文件和std::thread(请参阅here)。

我没有尝试从MEX文件中调用mexEvalString,很可能会导致运行时错误或冻结MATLAB执行时间。但是如果你能用C ++编写那段特定的代码,它可能就是你要找的东西。