【发布时间】:2013-11-21 02:53:10
【问题描述】:
我的数据收集软件将数据输出为 .csv 文件,第一行是每个输出的标题,然后是包含数据的行(我认为这很标准)。可以在此处找到示例数据文件:Example data file
这是我遇到问题的第一点。基本上,当我导入文件时,我得到 2 个矩阵,一个包含标题(所以只有一个 [1xN] 矩阵,其中 N 是输出的数量。N 在实验之间发生变化,这是这里问题的一部分),另一个包含所有数字数据点。由此,我需要创建使用“标题”矩阵中的每个标题命名的数组。我实际上需要将它们从矩阵中拉出来,而不仅仅是拥有一组标准的名称,这些名称将与“数据”矩阵中的每一列相对应,因为输出的数量和可能的输出名称是可以(并且经常)在文件之间更改。
我知道这可以使用 eval 函数来完成,但我也知道应该尽可能避免使用 eval 函数。我只是不知道如何做到这一点。
下一个复杂级别,我认为解决方案(如果有的话)将类似于上面的解决方案,是我需要以嵌套结构的形式维护文件夹结构。这是因为我需要能够一次导入多个这些文件。
所以,举个例子,嵌套结构看起来像这样:
典型的文件路径如下所示: H:\RawData\11-01-13\Cell1\ProximalDendrite_001\Sweep1.csv
等等,其中 Sweep1 对应于一个 VoltageOutputs 文件,就像我链接的那个文件一样(每个文件夹通常有多个扫描)。
然后的想法是为每个扫描创建一个包含各种 OutputVariable 数组的矩阵。每个数据文件夹有多个扫描,每个数据文件夹都包含在该数据集的更大文件夹中。我需要能够根据它们对应的文件名来命名将包含所有这些的矩阵。
我们的想法是最终拥有一些东西,我可以从特定的扫描中调用特定的数组。因此,使用上面的示例,我可以使用 Cell1 的 Dendrite001 调用 Outputs001 的“主要”输出:
11-01-13_Cell1.ProximalDenrite_001.Sweep1.Primary
因此,需要能够通过首先查看它们的命名方式(这很容易获得)来命名这些事物,保存该字符串,并以某种方式用相应的名称重命名矩阵。
这同样可以使用 eval 函数,但如果存在替代方案,我当然想走这条路。
【问题讨论】:
标签: matlab csv dynamic matrix eval