2016-05-14 56 views
1

我有18個ascii文件(AA01,AA02,AA03 ... AA18),每個文件有5220行和9列。我試圖在3D矩陣讀取多個ascii文件並生成3D矩陣

我用下面的代碼尺寸(5220×9×18)導入和閱讀本文件,並保存數據,但沒有得到通過

Folder = 'D:\My_Files'; 
Pattern = fullfile(Folder, '*.*'); 
Files = dir(Pattern); 
for k = 1 : length(Files) 
    baseFileName = Files(k).name; 
    fullFileName = fullfile(Folder, baseFileName); 
    fprintf(1, 'Now reading %s\n', fullFileName); 
end 

回答

1

我假定文件名作爲(A1.out,A2.out,A3.out ... A18.out)。

Folder = 'D:\My_Files\'; 
numberOfFiles=18; 
A=zeros(5520,9,numberOfFiles); 
for i=1:numberOfFiles 
    fileLocation=strcat(Folder,'A',num2str(i),'.out'); 
    An=load(fileLocation); 
    A(:,:,i)=An; 
end 

A是3D矩陣尺寸(5520x9x18)

更新:對於文件名(AA01,AA02,AA18 ......)並且每個文件具有三個字段data(5520x9) ,colheaders(1X9)和textdata(1X9)[評價從樣本數據得到]

Folder = 'D:\My_Files\'; 
numberOfFiles=18; 
A=zeros(5520,9,numberOfFiles); 
for i=1:numberOfFiles 
    if (i<10) 
     fileLocation=strcat(Folder,'AA0',num2str(i)); 
    else 
     fileLocation=strcat(Folder,'AA',num2str(i)); 
    end 
    An=importdata(fileLocation); 
    A(:,:,i)=An.data; 
end 

A是3D矩陣尺寸(5520x9x18)

+0

。謝謝。我得到錯誤。從struct轉換爲double是不可能的。 (第9行) A(:,:,i)= An; – user6052232

+0

這是因爲大小爲50000x200的矩陣位於該結構中,或者該文件包含多個變量。運行後你會得到一個錯誤,然後到達工作區並打開'An',它將在變量編輯器中打開。拍攝變量編輯器的屏幕截圖並編輯上面的問題,並且還包含圖像。 –

+0

在正常情況下,這將工作。因爲它不是,不知道那個'An'裏面的東西我無法幫忙。它內部是否有多個結構,或者是它內部所需的矩陣。猜測不會工作。 –