2013-03-02 14 views
0

在我的代碼中,我試圖使用單元格中的條目加載,但它不工作。下面我的代碼部分生成一個3維的字符串數組。這些字符串表示文件名的路徑。從單元格中使用數據加載

for i = 1:Something 
for j = 1:Something Different 
    for k = 1: Yet Something Something Different 
    DataPath{j,k,i} = 'F:\blah\blah\blah\fileijk %file changes based on i,j,and k  
    end 
end 
end 

在代碼的下一部分中,我想使用load來打開使用上面代碼中定義的路徑名的文件。我使用下面的代碼來執行此操作。

Dummy = DataPath{l,(k-1)*TSRRange+m}; 
Data = load(Dummy); 

這個想法是讓Dummy將字符串內容從DataPath中取出來,以便在加載時使用它。通過這樣做,我認爲Dummy將被定義爲一個字符串而不是一個單元格,但事實並非如此。如何從DataPath中提取字符串,以便在加載時使用它?謝謝。

我必須這樣加載數據,因爲數據位於多個文件夾中。如果需要,我可以發佈更多的代碼,但它很複雜。

+0

如果'Dummy'是一個單元格,那麼'DataPath'必須以與示例代碼中顯示的方式不同的方式構建。 – jerad 2013-03-02 23:28:16

+0

在任何情況下,您都可以使用'cell2mat(Dummy)'來獲取單元格中的字符串。 – jerad 2013-03-02 23:34:48

+0

如果'l','k','m','TSRRange'變量是標量,並且如果你沒有得到尺寸誤差,你的第二部分應該工作。問題是你真的在第一部分將字符串分配給'DataPath'嗎?可能他們實際上是細胞?你直接分配字符串還是來自某些變量? – yuk 2013-03-03 00:57:14

回答

1

Dummy是細胞,因爲您分配了3D單元陣列,但訪問的是2D細胞與Dummy = Datapath{1,(k-1)*TSRRange+m}

我不相信,你可以期望訪問所有電池元件我這種方式。相反,使用三個索引就像創建它時一樣。

+0

這就是我所缺少的。我沒有在代碼的第二部分分配第三維。今天編碼太多.... – 2013-03-03 01:22:25

相關問題