2017-10-10 87 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