【问题标题】:save command in matlab parfor loop在 matlab parfor 循环中保存命令
【发布时间】:2012-08-28 03:00:09
【问题描述】:

我正在尝试在 parfor 循环中保存一个矩阵。我知道 matlab 不允许这样做,需要创建一个单独的程序。谷歌搜索一下建议创建一个单独的函数,比如 parfor 如下:

  function parsave(fname, x,y)

    save(fname, 'x', 'y')

   end

我遇到的问题是,在完成所有迭代之前,程序似乎在没有任何错误的情况下停止(即,它正在保存大约一半的文件)。我有很多小文件(大约 1M)。会不会是这个问题?

提前致谢

【问题讨论】:

    标签: matlab parallel-processing


    【解决方案1】:

    在 parfor 中直接调用 save 违反了透明度要求。相反,您需要将变量传递给可以调用 save 的另一个函数。

    Matlab provides 的示例如下。

    将以下内容另存为“parsave.m”:

        function parsave(fname, x,y)
        save(fname, 'x', 'y')
        end
    

    然后运行它:

        parfor ii = 1:4
        x = rand(10,10);
        y = ones(1,3);
        parsave(sprintf('output%d.mat', ii), x, y);
        end
    

    【讨论】:

    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多