2016-12-14 127 views
0

我有一個名爲Output.txt的一個文本文件,它看起來像這樣:如何從文本文件中將逗號分隔的雙精度讀入MATLAB?

0.000000,0.550147,0.884956 
1.000000,0.532486,0.847458 
2.000000,0.501333,0.800000 
3.000000,0.466418,0.746269 
4.000000,0.409492,0.662252 
5.000000,0.327257,0.520833 
6.000000,0.267376,0.425532 
7.000000,0.188427,0.296736 
8.000000,0.115824,0.180505 
9.000000,0.062768,0.099108 

我需要用逗號分隔成MATLAB爲3個不同的向量的三個值讀取。他們可以被稱爲任何東西,但C1,C2C3可以工作。

C1將包含[0.000000,1.000000,2.000000, ...]C2將包含[0.550147,0.532486,...]C3將包含在第三列[0.884956,0.847458,...]的值。

我嘗試使用以下,但我有問題,得到它才能正常工作:

File = 'Output.txt'; 
f = fopen(File, 'r'); 
C = textscan(f, '%f%f%f', 'Delimiter', ','); 
fclose(f); 

這給了我1×3單元陣列C但每個C的細胞是1×100,並且不包含正確的數字。

回答

5

你有一個Comma Separated Value文件,所以你可以簡單地使用csvread在你的矩陣如下:

C = csvread('Output.txt'); 

其中C現在是一個包含所有你的價值觀,你當然可以索引通過行和列的矩陣。我建議不要創建列向量,而是使用C(:,1)作爲第一列等

+0

我已經嘗試了此前,它不工作,因爲你已經解釋。我知道我有一個逗號分隔值文件,但是當我使用csvread時,它給了我一個1x100的向量。我認爲我的文件的小數值可能有問題。 – user3716193

+0

與您呈現的文件適用於我。你可以請發佈一個[mcve],其中概述了爲什麼它不適合你? – Adriaan

+0

我想通了我的問題,Matlab在我的電腦上找到我的文件時遇到問題。我在csvread(path/to/my/file)命令中使用了一個到我的文件的確切路徑,它工作正常。謝謝。 – user3716193

相關問題