p*******9 发帖数: 801 | 1 MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识
,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除,
但是文件多,不能一一手动,请问怎么用MATLAB来自动实现?
谢谢! |
l********a 发帖数: 1154 | |
n*******e 发帖数: 2213 | 3 if you know what it is, just use a text editor to run a batch find and
replacement.
【在 p*******9 的大作中提到】 : MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识 : ,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除, : 但是文件多,不能一一手动,请问怎么用MATLAB来自动实现? : 谢谢!
|
p*******9 发帖数: 801 | 4 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识: |
p*******9 发帖数: 801 | 5 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识: |
p*******9 发帖数: 801 | 6 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识: |
t****u 发帖数: 709 | 7 别读最后一个字符,重新生成一个文件,就万事ok了
【在 p*******9 的大作中提到】 : 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识:
|
p*******9 发帖数: 801 | 8 “fprintf(fid_tmp, '%s\n', tline); ”
现在我是用这个命令读成一个矩阵的形式,然后再做其他的矩阵操作,有什么办法限制
不读最后一个字符码?
【在 t****u 的大作中提到】 : 别读最后一个字符,重新生成一个文件,就万事ok了
|
f*****h 发帖数: 72 | 9 能不能跳到文件末尾,把最后一个字符删掉或替换掉,再按格式读? |
p*******9 发帖数: 801 | 10 试过,但是Matlab根本不认识这个东西,所以没法替换后查找什么的。
【在 f*****h 的大作中提到】 : 能不能跳到文件末尾,把最后一个字符删掉或替换掉,再按格式读?
|
|
|
s****1 发帖数: 1519 | 11 按照string读进来,最后一个字符不要不行么? |
p*******9 发帖数: 801 | 12 试过,不工作,关键是最后一个字符无法定位,考虑到读成矩阵之后,在更换该位置的
值,但是也不工作,郁闷了!
【在 s****1 的大作中提到】 : 按照string读进来,最后一个字符不要不行么?
|
p*******9 发帖数: 801 | 13 试过,不工作,关键是最后一个字符无法定位,考虑到读成矩阵之后,在更换该位置的
值,但是也不工作,郁闷了!
【在 s****1 的大作中提到】 : 按照string读进来,最后一个字符不要不行么?
|
l*******G 发帖数: 1191 | 14 读一个字母就写一个字母到另一个文件,直到出现错误,用try catch |
t***s 发帖数: 4666 | 15 先用perl处理一下?
【在 p*******9 的大作中提到】 : 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识:
|
s*****c 发帖数: 753 | 16 fprintf? 读?
Have you tried fscanf with %f? How about csvread or dlmread?
If you really was reading it in as a string (assume it is stored in A) and
then parsing the string to get the value, can't you parse A(1:end-1)?
【在 p*******9 的大作中提到】 : “fprintf(fid_tmp, '%s\n', tline); ” : 现在我是用这个命令读成一个矩阵的形式,然后再做其他的矩阵操作,有什么办法限制 : 不读最后一个字符码?
|
s*****c 发帖数: 753 | 17 This symbol is ascii code 12, or form feed. \f
Try to use dlmread with ',\f' as delimiter.
【在 p*******9 的大作中提到】 : 试过,但是Matlab根本不认识这个东西,所以没法替换后查找什么的。
|
d*****t 发帖数: 7903 | 18 我遇到过类似的问题,当时解决的方法是用ultraedit找出这个字符的ASCII码,然后用
replace功能替换这个字符。
供你参考。 |
v***r 发帖数: 1046 | 19 use perl to chop the last character.
【在 p*******9 的大作中提到】 : MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识 : ,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除, : 但是文件多,不能一一手动,请问怎么用MATLAB来自动实现? : 谢谢!
|
p*******9 发帖数: 801 | 20 那样就麻烦一些了,最好只用Matlab。
【在 t***s 的大作中提到】 : 先用perl处理一下?
|
|
|
p*******9 发帖数: 801 | 21 怎么实现的?能具体的说说吗?
最好能有命令行看看?
【在 d*****t 的大作中提到】 : 我遇到过类似的问题,当时解决的方法是用ultraedit找出这个字符的ASCII码,然后用 : replace功能替换这个字符。 : 供你参考。
|
p*******9 发帖数: 801 | 22 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
p*******9 发帖数: 801 | 23 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
s****1 发帖数: 1519 | 24 s = fread(fid, 'char');
s = char(s');
s = s(1:end-1);
fprintf(fid_temp, '%s',s);
finalfile = csvread('temp.csv');
应该可以了 fopen, fclose啥的你就自己写了 |
m*******y 发帖数: 314 | 25 %% assume test.csv file has 12345 345435 23 12312 34324
_
%% note the last one is a char '-'
A = importdata('test.csv');
B = str2mat(A);
C = B(1: length(B)-1);
%% please first try to see the final char is one or two (or X) in the string
B, and adjust length(B)-X
D = str2num(C);
Can you try above codes to see if this works or not?
【在 p*******9 的大作中提到】 : MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识 : ,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除, : 但是文件多,不能一一手动,请问怎么用MATLAB来自动实现? : 谢谢!
|
d*****t 发帖数: 7903 | 26 当时是用ultraedit直接替换的,没用matlab. 如果matlab 能直接读取ascii码就能实
现类似的功能,但当时没时间实验了。上面几个人的代码可以吗?
【在 p*******9 的大作中提到】 : 怎么实现的?能具体的说说吗? : 最好能有命令行看看?
|
p*******9 发帖数: 801 | 27 谢谢大家的帮忙,正在调试中,最近忙,家里电脑也不能用,等调试好了,再和大家说
说。 |
p*******9 发帖数: 801 | 28 MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识
,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除,
但是文件多,不能一一手动,请问怎么用MATLAB来自动实现?
谢谢! |
l********a 发帖数: 1154 | |
n*******e 发帖数: 2213 | 30 if you know what it is, just use a text editor to run a batch find and
replacement.
【在 p*******9 的大作中提到】 : MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识 : ,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除, : 但是文件多,不能一一手动,请问怎么用MATLAB来自动实现? : 谢谢!
|
|
|
p*******9 发帖数: 801 | 31 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识: |
p*******9 发帖数: 801 | 32 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识: |
p*******9 发帖数: 801 | 33 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识: |
t****u 发帖数: 709 | 34 别读最后一个字符,重新生成一个文件,就万事ok了
【在 p*******9 的大作中提到】 : 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识:
|
p*******9 发帖数: 801 | 35 “fprintf(fid_tmp, '%s\n', tline); ”
现在我是用这个命令读成一个矩阵的形式,然后再做其他的矩阵操作,有什么办法限制
不读最后一个字符码?
【在 t****u 的大作中提到】 : 别读最后一个字符,重新生成一个文件,就万事ok了
|
f*****h 发帖数: 72 | 36 能不能跳到文件末尾,把最后一个字符删掉或替换掉,再按格式读? |
p*******9 发帖数: 801 | 37 试过,但是Matlab根本不认识这个东西,所以没法替换后查找什么的。
【在 f*****h 的大作中提到】 : 能不能跳到文件末尾,把最后一个字符删掉或替换掉,再按格式读?
|
s****1 发帖数: 1519 | 38 按照string读进来,最后一个字符不要不行么? |
p*******9 发帖数: 801 | 39 试过,不工作,关键是最后一个字符无法定位,考虑到读成矩阵之后,在更换该位置的
值,但是也不工作,郁闷了!
【在 s****1 的大作中提到】 : 按照string读进来,最后一个字符不要不行么?
|
p*******9 发帖数: 801 | 40 试过,不工作,关键是最后一个字符无法定位,考虑到读成矩阵之后,在更换该位置的
值,但是也不工作,郁闷了!
【在 s****1 的大作中提到】 : 按照string读进来,最后一个字符不要不行么?
|
|
|
l*******G 发帖数: 1191 | 41 读一个字母就写一个字母到另一个文件,直到出现错误,用try catch |
t***s 发帖数: 4666 | 42 先用perl处理一下?
【在 p*******9 的大作中提到】 : 原始数据文件如图,是有测试仪器自动生成的,该字符无法复制粘贴,并被辨识:
|
s*****c 发帖数: 753 | 43 fprintf? 读?
Have you tried fscanf with %f? How about csvread or dlmread?
If you really was reading it in as a string (assume it is stored in A) and
then parsing the string to get the value, can't you parse A(1:end-1)?
【在 p*******9 的大作中提到】 : “fprintf(fid_tmp, '%s\n', tline); ” : 现在我是用这个命令读成一个矩阵的形式,然后再做其他的矩阵操作,有什么办法限制 : 不读最后一个字符码?
|
s*****c 发帖数: 753 | 44 This symbol is ascii code 12, or form feed. \f
Try to use dlmread with ',\f' as delimiter.
【在 p*******9 的大作中提到】 : 试过,但是Matlab根本不认识这个东西,所以没法替换后查找什么的。
|
d*****t 发帖数: 7903 | 45 我遇到过类似的问题,当时解决的方法是用ultraedit找出这个字符的ASCII码,然后用
replace功能替换这个字符。
供你参考。 |
v***r 发帖数: 1046 | 46 use perl to chop the last character.
【在 p*******9 的大作中提到】 : MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识 : ,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除, : 但是文件多,不能一一手动,请问怎么用MATLAB来自动实现? : 谢谢!
|
p*******9 发帖数: 801 | 47 那样就麻烦一些了,最好只用Matlab。
【在 t***s 的大作中提到】 : 先用perl处理一下?
|
p*******9 发帖数: 801 | 48 怎么实现的?能具体的说说吗?
最好能有命令行看看?
【在 d*****t 的大作中提到】 : 我遇到过类似的问题,当时解决的方法是用ultraedit找出这个字符的ASCII码,然后用 : replace功能替换这个字符。 : 供你参考。
|
p*******9 发帖数: 801 | 49 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
p*******9 发帖数: 801 | 50 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
|
|
s****1 发帖数: 1519 | 51 s = fread(fid, 'char');
s = char(s');
s = s(1:end-1);
fprintf(fid_temp, '%s',s);
finalfile = csvread('temp.csv');
应该可以了 fopen, fclose啥的你就自己写了 |
m*******y 发帖数: 314 | 52 %% assume test.csv file has 12345 345435 23 12312 34324
_
%% note the last one is a char '-'
A = importdata('test.csv');
B = str2mat(A);
C = B(1: length(B)-1);
%% please first try to see the final char is one or two (or X) in the string
B, and adjust length(B)-X
D = str2num(C);
Can you try above codes to see if this works or not?
【在 p*******9 的大作中提到】 : MATLAB读取数据的过程中,在数据文件的末尾总是有一个异常的字符,MATLAB无法辨识 : ,但是在转换过程中总是报错,说是格式不正确,怎么能把它删除啊,手动可以删除, : 但是文件多,不能一一手动,请问怎么用MATLAB来自动实现? : 谢谢!
|
d*****t 发帖数: 7903 | 53 当时是用ultraedit直接替换的,没用matlab. 如果matlab 能直接读取ascii码就能实
现类似的功能,但当时没时间实验了。上面几个人的代码可以吗?
【在 p*******9 的大作中提到】 : 怎么实现的?能具体的说说吗? : 最好能有命令行看看?
|
p*******9 发帖数: 801 | 54 谢谢大家的帮忙,正在调试中,最近忙,家里电脑也不能用,等调试好了,再和大家说
说。 |