在parfor循环中使用Parsave-仅保存我的最后一个变量结果

卡林瓦西里

这是我的代码的简化版本。我想要获得的是result1.mat中包含的variable1-行向量。问题是解析-仅保存一个结果,即第10次迭代的最后一个结果。我该怎么做才能将所有结果保存在parfor循环内的一个向量中(在variable1中)?

parfor ii = 1:10

    [variable1, variable2] = MyFunction(~,~,ii);

    parsave('result.mat',variable1, variable2)

end

function parsave(filename, varargin)

narginchk(2, Inf);

nargoutchk(0, 0);

for I = 2:nargin

    varname = genvarname(inputname(I));
    eval([varname ' = varargin{' num2str(I-1) '};'])

    if (I == 2)
        save(filename, varname)
    else
        save(filename, varname, '-append')
    end

end
卡林瓦西里

http://www.mathworks.com/matlabcentral/answers/179884-save-inside-parfor-loop-at-a-specific-iteration-step找到了一种优雅的解决方案

  parpool('local',10); % results will be distributed on 10 workers

  output1=distributed.NaN(1,1e5); %pre-allocate
  output2=distributed.NaN(1,1e5);

  spmd
   for i=drange(1:1e5)

  [output1(ii), output2(ii)] = MyFunction(~,~,ii);

  parsave(['output1', num2str(labindex)],...
          getLocalPart(output1));
  parsave(['output2', num2str(labindex)],...
              getLocalPart(output2));
   end
  end

我使用了2倍的parsave函数,以防万一机器在模拟结束前关闭,将保存10个mat文件,并带有临时结果,以后需要将它们连接起来(对于output1和output2)

解析功能为:

  function parsave(fname,data)

  var_name=genvarname(inputname(2));
  eval([var_name '=data'])

  try
  save(fname,var_name,'-append')
  catch
  save(fname,var_name)
  end

% Written by Minjie Xu (<mailto:[email protected] [email protected]>)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Foreach循环仅返回最后一个结果

来自分类Dev

Parse.com将对象保存在循环中,仅保存最后一个对象

来自分类Dev

在Razor的外循环中定义一个变量,并在循环中使用它

来自分类Dev

我可以在一个foreach循环中使用两组变量吗?

来自分类Dev

我可以在一个foreach循环中使用两组变量吗?

来自分类Dev

在MATLAB的嵌套parfor循环中访问变量

来自分类Dev

Python for循环仅将最后一个循环保存在我的二维数组中

来自分类Dev

我怎么知道最后一个异步函数何时在“ for key in ob”循环中返回结果?

来自分类Dev

循环中的setTimeout仅影响最后一个元素

来自分类Dev

for循环中的lambda仅取最后一个值

来自分类Dev

我想将查询返回的结果保存在变量中,并在另一个函数中使用它

来自分类常见问题

我可以在一个循环中使用2个循环语句吗?

来自分类Dev

我可以在一个循环中使用2个循环语句吗?

来自分类Dev

PHP Mysql While循环将覆盖一个变量并仅显示一个结果

来自分类Dev

在fortran循环中使用指针变量

来自分类Dev

在for循环中使用变量的存储值

来自分类Dev

Ansible:在标准循环中使用变量

来自分类Dev

在fortran循环中使用指针变量

来自分类Dev

在for循环中使用变量的存储值

来自分类Dev

在for循环中使用多个变量

来自分类Dev

在循环中使用 getter setter 变量

来自分类Dev

为什么for循环仅显示最后一个循环的结果

来自分类Dev

在我的循环中使用UPDATE吗?

来自分类Dev

如何在一个循环中使用两个变量

来自分类Dev

在foreach循环中遍历laravel的结果时,它只保存新数组元素中的最后一个元素?

来自分类Dev

JavaScript执行循环,但仅查看数组中最后一个元素的结果

来自分类Dev

使用Swift在for循环中使用两个变量

来自分类Dev

我无法在循环中使用第一个if语句。

来自分类Dev

循环中的onclick仅引用循环中的最后一个元素

Related 相关文章

  1. 1

    Foreach循环仅返回最后一个结果

  2. 2

    Parse.com将对象保存在循环中,仅保存最后一个对象

  3. 3

    在Razor的外循环中定义一个变量,并在循环中使用它

  4. 4

    我可以在一个foreach循环中使用两组变量吗?

  5. 5

    我可以在一个foreach循环中使用两组变量吗?

  6. 6

    在MATLAB的嵌套parfor循环中访问变量

  7. 7

    Python for循环仅将最后一个循环保存在我的二维数组中

  8. 8

    我怎么知道最后一个异步函数何时在“ for key in ob”循环中返回结果?

  9. 9

    循环中的setTimeout仅影响最后一个元素

  10. 10

    for循环中的lambda仅取最后一个值

  11. 11

    我想将查询返回的结果保存在变量中,并在另一个函数中使用它

  12. 12

    我可以在一个循环中使用2个循环语句吗?

  13. 13

    我可以在一个循环中使用2个循环语句吗?

  14. 14

    PHP Mysql While循环将覆盖一个变量并仅显示一个结果

  15. 15

    在fortran循环中使用指针变量

  16. 16

    在for循环中使用变量的存储值

  17. 17

    Ansible:在标准循环中使用变量

  18. 18

    在fortran循环中使用指针变量

  19. 19

    在for循环中使用变量的存储值

  20. 20

    在for循环中使用多个变量

  21. 21

    在循环中使用 getter setter 变量

  22. 22

    为什么for循环仅显示最后一个循环的结果

  23. 23

    在我的循环中使用UPDATE吗?

  24. 24

    如何在一个循环中使用两个变量

  25. 25

    在foreach循环中遍历laravel的结果时,它只保存新数组元素中的最后一个元素?

  26. 26

    JavaScript执行循环,但仅查看数组中最后一个元素的结果

  27. 27

    使用Swift在for循环中使用两个变量

  28. 28

    我无法在循环中使用第一个if语句。

  29. 29

    循环中的onclick仅引用循环中的最后一个元素

热门标签

归档