Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Matlab文件读取时出现格式规范问题_Matlab_Formatting_Format_Printf_Scanf - Fatal编程技术网

从Matlab文件读取时出现格式规范问题

从Matlab文件读取时出现格式规范问题,matlab,formatting,format,printf,scanf,Matlab,Formatting,Format,Printf,Scanf,我有一个.dat文件,其中一个表包含以下顺序的数据: 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

我有一个.dat文件,其中一个表包含以下顺序的数据:

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);

不幸的是,它不起作用。我做错了什么?

将数据中的逗号替换为点后,您可以使用
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);

请澄清“不起作用”的含义。你有错误吗?如果是这样,请发布文本,或者提供更多关于发生了什么的详细信息。在disp()之后,我得到一个没有数据的空数组,所以这就是我要解决的问题。数据中有逗号吗?你应该用点来代替它。我有1000个数字,怎么替换呢?我不能手动替换逗号,因为里面有很多数字table@PetukhovLive将其替换为类似记事本++的文本编辑器。使用“全部替换”,而不是手动替换。@PetukhovLive我的答案已更新,以支持您的替换案例。