2017-10-10 67 views
-1

我有按照以下順序包含數據表中的.dat文件:問題與格式規範,而從文件中讀取Matlab的

0,000E+0 4,069E-2 -5,954E+0 1,851E-2 

我需要做的是閱讀與MATLAB這些數據,然後以某種方式處理它。
這裏是我的代碼:

path = 'C:/Users/user/Desktop/file1.dat'; 
fileID = fopen(path,'r'); 
formatSpec = '%e'; 
A = fscanf(fileID,formatSpec); 
fclose(fileID); 
disp(A); 

不幸的是,這是行不通的。我做錯了什麼?

+0

請澄清「不工作」的意思。你有錯誤嗎?如果是這樣發佈文本,或者提供一些關於發生的更多細節。 – theFunkyEngineer

+0

在disp()之後我得到一個沒有數據的空數組,所以這就是我想要修復的問題 – PetukhovLive

+0

你在數據中有逗號嗎?你應該用點替換它。 – OmG

回答

1

與點替換逗號的數據後,您可以使用dlmread功能閱讀:

M = dlmread('filename', ' '); 

M是你想要的。 在第一部分,替換字符,可以使用下面的代碼:

% read the file 
fid = fopen('input.txt','r'); 
f=fread(fid,'*char')'; 
fclose(fid); 

%replace the char 
f = strrep(f,',','.'); 

% write into the another file  
fid = fopen('output.txt','w'); 
fprintf(fid,'%s',f); 
fclose(fid); 
+0

我不能手動替換逗號,有許多表中的數字 – PetukhovLive

+0

@PetukhovLive用文本編輯器替換它喜歡記事本++。使用全部替換,而不是手動。 – OmG

+0

@PetukhovLive我的答案已更新,以支持您的案例進行更換。 – OmG