【问题标题】:Problems with parfor-loop in command line execution命令行执行中的 parfor-loop 问题
【发布时间】:2015-08-19 17:19:09
【问题描述】:

我正在尝试执行这段代码:

parpool('local',4);

range = 1000;

parfor i = 1:range
    A_test(i) = sqrt(i);
end

它在 MATLAB-Desktop 窗口中完美运行,但是当我尝试从命令行运行它时使用

matlab -nosplash -nodesktop -r "run script.m"

我收到以下错误:

Error using onCleanup (line 50)
Not enough input arguments.

Error in parfor_test (line 9)
parfor i = 1:range

Error in run (line 96)
evalin('caller', [script ';']);

我读到,我可能必须预先分配向量 A_test,所以我修改了如下代码:

parpool('local',4);

range = 1000;

A_test = zeros(1,range);

parfor i = 1:range
    A_test(i) = sqrt(i);
end

现在我没有收到任何错误,但 A_test 没有填充 sqrt 数字,而是填充零。 你有什么想法,我可以做些什么来修复这个错误?

【问题讨论】:

    标签: matlab parallel-processing parfor


    【解决方案1】:

    您不需要在命令中使用run。做吧:

    matlab -nosplash -nodesktop -r "script"
    

    edit刚刚意识到我在上面的命令中有错字(不需要.m扩展名->会导致错误)

    【讨论】:

    • 那行不通。我收到错误“意外的 MATLAB 运算符”。
    • 对我有用...您使用的是什么版本的 Matlab?
    • MATLAB R2015a - 学术用途
    • 我没有 R2015a 来测试它 - 但我无法想象这是问题所在...如果您在命令窗口中输入 lasterror 会说明什么?
    猜你喜欢
    • 2020-06-21
    • 1970-01-01
    • 2015-01-10
    • 2020-12-23
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多