【发布时间】:2016-09-28 14:12:46
【问题描述】:
我在 excel 文件中有一些数据。
首先,我读取文件并通过以下命令创建存储在单元格中的名称列表:
[status,sheets] = xlsfinfo(filename);
我得到:
sheets = {'A1','A2','B1','B2','C1'};
(这些是 excel 文件中 excelsheets 的名称)
通过一些过程,我获得了每个名称的矩阵(excelsheets)。每个的最终矩阵称为:
completeData = [x,v,z,y,s];
现在,我想:
将“completeData”变量的名称更改为每个对应的 excelsheet(来自“sheets”单元格)。
然后将这个新重命名的变量(旧的“completeData”)与其对应的 excelsheet 的名称一起保存(同样来自“sheets”单元格)。
到目前为止,我只设法通过以下命令分别保存每个 Excel 工作表生成的每个完整数据矩阵以及工作表的名称 [即第 2 点]:
save(sprintf('%s',sheets{excelSheet}),'completeData');
(这里我在“excelsheet”上有一个循环)
问题是,当我管理 excel 工作表并将它们全部保存在我的硬盘的文件夹中时,每当我运行这些保存的变量中的任何一个时,我都会在工作区中得到“completeData”,这不是我想要的。我还想获取 excelsheet 的名称。
我该怎么做?
附:通过这个命令:
eval(sprintf([sheets{excelsheet} '=completeData;']));
(再次在 excelsheet 上循环)
我已经设法创建了几个带有 Excel 工作表名称的矩阵。但是我不知道如何通过循环保存这些非常好的新创建的变量,这样我就不一一做了。
【问题讨论】:
-
使用 eval 和拥有“动态变量”(改变名称/迭代创建的变量)都是可怕的编程实践。当你需要做其中任何一个时,这意味着你的算法已经过时了,而你只是在做着
-
@PeyM87 作为替代方案,您可以使用带有variable field names的结构体