创建工作空间变量的单元格数组,而无需手动将其全部写出。 MATLAB

时间:2015-06-15 16:54:06

标签: matlab

我在工作区中有20个列向量,我希望它们都包含在单元格数组中。它们都标记为data1,data2,data3,... data20。

有没有比这更快的方法:

dfs <- lapply(seq_len(ncol(perm)), function(x) close[,paste0(perm[,x], ".Close")])

一直到data20?

2 个答案:

答案 0 :(得分:3)

正如我在评论中已经提到的,这样的变量名称是个坏主意。如果你真的必须使用它们并且没有其他可能性,请使用此代码来获取单元格数组:

.on

我建议不要使用eval,详情请参阅:Why avoid the eval functions and alternatives to it.

答案 1 :(得分:3)

不是最快捷的方式,但您可以按照以下方式执行此操作:

  1. 将所需变量保存在临时文件中
  2. 加载该文件以获取结构数组中的所有变量
  3. 将该struct数组转换为单元格数组
  4. 即,

    save temp_file -regexp data\d+    %// step 1
    allData = load('temp_file.mat');  %// step 2
    allData = struct2cell(allData);   %// step 3