我的數據收集軟件輸出數據爲.csv文件,第一行是每個輸出的標題,後面是包含數據的行(我認爲是非常標準的)。一個示例數據文件可以在這裏找到:Example data fileMatlab - 如何做到這一點沒有動態變量/評估?
這是我遇到問題的第一點。本質上,當我導入文件時,我得到了2個矩陣,其中一個包含頭部(所以只是一個[1xN]矩陣,其中N是輸出數量,N是實驗間的變化,這是問題的一部分),另一個包含所有的數字數據點。由此,我需要使用「標題」矩陣中的每個標題創建數組。我需要將它們從矩陣中拉出來,而不是僅僅具有與「數據」矩陣中的每列對應的標準名稱集合,因爲輸出的數量和可能的輸出名稱都是可以(並且經常)在文件之間改變。
我知道這可以使用eval函數來完成,但我也知道應儘可能避免使用eval函數。我只是想以另一種方式去做這件事。
複雜性的下一個層次,我認爲解決方案(如果有的話)將類似於上面的解決方案,是我需要以嵌套結構的形式維護文件夾結構。這是因爲我需要能夠一次導入多個這些文件。
所以,僅僅舉一個例子,嵌套的結構將是這個樣子:
典型的文件路徑看起來是這樣的: H:\ RAWDATA \ 13年11月1日\ Cell1 \ ProximalDendrite_001 \ Sweep1.csv
等,其中Sweep1將對應於一個VoltageOutputs文件,就像我鏈接的文件(通常每個文件夾有多個掃描)。
然後,這個想法是爲每個包含各種OutputVariable數組的掃描創建一個矩陣。每個數據文件夾有多個掃描,並且每個數據文件夾都包含在該數據集的較大文件夾中。我需要能夠基於它們對應的文件名來命名將包含所有這些的矩陣。
這個想法是最終有一些東西,我可以從特定的掃描調用特定的數組。因此,使用上面的例子,我可以對「主」從Outputs001從小區1輸出從Dendrite001使用撥打:
11-01-13_Cell1.ProximalDenrite_001.Sweep1.Primary
所以,再一次,有需要能夠通過首先查看它們是如何命名的(這很容易獲得)命名這些東西,保存該字符串,並以某種方式重命名具有相應名稱的矩陣。
同樣,使用eval函數也是可能的,但如果存在替代方案,我肯定會喜歡去那條路線。
我看你如何在第一級之後做到這一點。但是,您是否可以考慮使用文件名稱本身命名結構本身的方法。所以,例如,我在我的例子中的結構名稱是11-01-13_Cell1 我的意思是,我可能只需要創建默認結構(例如DataSet1),它可以作爲解決方法工作,但很明顯isn不理想。 – user3014097