3

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

  function parsave(fname, x,y)

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

   end

我遇到的问题是程序似乎在进行所有迭代之前停止而没有任何错误(即,它正在保存大约一半的文件)。我有很多小文件(大约 1M)。这可能是问题吗?

提前致谢

4

1 回答 1

4

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

Matlab 提供的示例如下。

将以下内容另存为“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
于 2013-01-17T20:47:48.043 回答