使用Matlab中的数组中的单元格创建变量名称

时间:2014-11-18 10:01:04

标签: matlab variables import

我正在尝试编写一个脚本,将包含多列数据的大型.txt文件导入到Matlab中的单独变量中。

我已经达到了拥有7个数据集的阶段:

Var1= 3230 x 1 double
Var2= 3230 x 1 double
Var3= 3230 x 1 double
Var4= 3230 x 1 double
Var5= 3230 x 1 double
Var6= 3230 x 1 double
Var7= 3230 x 1 double

以及包含不同单元格中所有变量名称的数组:

nameArray= 1 x 7 cell

我的问题是:如何创建与nameArray中名称相同的变量,然后使用我的数据集中的数据填充它们?

2 个答案:

答案 0 :(得分:2)

您可能需要考虑使用T = readTable('mydatafile.txt')。这允许您加载具有单独列的文件并使用其列名访问这些列,例如:T.MyFirstColumn。有关示例,请参阅readtable上的手册。

答案 1 :(得分:2)

您有三种选择:

  1. 使用assignin

    assignin('caller', nameArray{1}, Var1)
    assignin('caller', nameArray{2}, Var2)
    ...
    

    这将在调用者的命名空间中创建名为nameArray{1}且值为Var1的变量。

  2. 构建结构:

    x = struct()
    x.(nameArray{1}) = Var1
    ...
    

    这将构建一个具有动态分配字段的结构。

  3. 正如@Scottanswer中建议:使用readtable

    T = readTable('mydatafile.txt')
    

    这会产生与选项2类似的结果。但T的类型为table,而不是struct。表格可在Matlab版本R2013b和更新版本中使用。

  4. 当然你应该使用循环