【问题标题】:Matlab saving variable for each iteration (without using eval)Matlab为每次迭代保存变量(不使用eval)
【发布时间】:2016-05-15 11:20:56
【问题描述】:

我想实现这个:

for k = 1:52
    map = reshape(map,[375 91 223]);
    x[i] = map;

    % create a new variable for each iteration x1,x2,x3,...x52  which stores 'map', 'map' is 375x91x223 size and each iteration produces a new 'map'.
end

我试图避免使用 eval,目前我考虑将其写入记事本,然后将其重新导入,但这也需要很多时间。任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: arrays matlab loops variables indexing


    【解决方案1】:

    如何将 rach 迭代分配给数组索引?

    x = [];
    
    for k=1:52
      map=reshape(map,[375 91 223]);
      x{k} = map;
    end
    

    或者为每次迭代创建一个新的结构成员怎么样?

    x = [];
    for k=1:52
      map=reshape(map,[375 91 223]);
      x.(['val' num2str(k)]) = map;
    end
    

    【讨论】:

    • 感谢您的帮助,每次迭代都使用新的结构成员,如果我想访问 'x' 中的 'val51' 来绘制它,我怎么能这样做。当我尝试它返回“未定义的函数”。谢谢。
    • 你应该可以像普通成员值一样访问:a = x.val51
    • 或者只是x(:, :, :, k) = map,因为map 的大小始终相同。
    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2018-06-11
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多