2016-02-19 116 views
-1

我想從多個數據集中提取原子的座標。
文本文件的格式是這樣的:Matlab腳本從文本文件中提取數據

1234 
generated by l4zyMF 
O 1.234567 2.345678 3.456789 1.234567 2.345678 3.456789 
H 7.654321 8.765432 9.876543 7.654321 8.765432 9.876543 
... 

現在我想在第一行澳6個值用一個for循環提取到一個單獨的陣列,但我只是得到一個錯誤信息。這是我目前的腳本:

Oxy = zeros(200,7) 
for n=1:200 
    fid = fopen('your\dir\here.dat','rt'); 
    data = textscan(fid,'%s %f %f %f %f %f %f','headerLines',2); 
    fclose(fid); 

    Oxy(3,:) = (data); 
end 

我將不勝感激任何幫助。

+0

請以書面形式向您的問題添加數據和代碼,以便我們可以試用。 – MattSchmatt

+0

另外,您收到的實際錯誤信息是什麼? – MattSchmatt

回答

1

這是行不通的:

... 
Oxy(3,:) = (data) 
... 

您試圖分配單元陣列的矩陣。
此外,您不一定需要循環才能獲取textscan的數據。

要獲得200x6矩陣的所有值使用cell2mat

fid = fopen('your\dir\here.dat','rt'); 
data = textscan(fid,'%s %f %f %f %f %f %f','headerLines',2); 
fclose(fid); 
Oxy = cell2mat(data(2:end)) 

氧=

1.2346 2.3457 3.4568 1.2346 2.3457 3.4568
7.6543 8.7654 9.8765 7.6543 8.7654 9.8765