我正在尝试编写一个脚本,将包含多列数据的大型.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中名称相同的变量,然后使用我的数据集中的数据填充它们?
答案 0 :(得分:2)
您可能需要考虑使用T = readTable('mydatafile.txt')
。这允许您加载具有单独列的文件并使用其列名访问这些列,例如:T.MyFirstColumn
。有关示例,请参阅readtable上的手册。
答案 1 :(得分:2)
您有三种选择:
使用assignin
:
assignin('caller', nameArray{1}, Var1)
assignin('caller', nameArray{2}, Var2)
...
这将在调用者的命名空间中创建名为nameArray{1}
且值为Var1
的变量。
构建结构:
x = struct()
x.(nameArray{1}) = Var1
...
这将构建一个具有动态分配字段的结构。
正如@Scott在answer中建议:使用readtable
:
T = readTable('mydatafile.txt')
这会产生与选项2类似的结果。但T
的类型为table
,而不是struct
。表格可在Matlab版本R2013b和更新版本中使用。
当然你应该使用循环