我必须阅读像这样的文件
10001 3 5.0000 30.0 0.0000 25.6 0.0000 10.0
10002 1 25.0000 0.0000 4.6887 58.2
10003 5 45.0000 20.0 0.0000 14.7608
10004 5 65.0000 0.0000 8.8791
10005 1 85.0000 0.0000 6.3128 00.0
文件格式如下'%5i%5i %% 10.4f%8.1f%10.4f%8.1f%10.4f%8.1f'
我正在使用以下代码
n_xyz_filename = input('\nSelect the file. ', 's');
n_xyz_file = fopen(n_xyz_filename, 'r');
n_xyz = textscan(n_xyz_file, '%5i%5i%10.4f%8.1f%10.4f%8.1f%10.4f%8.1f');
fclose(n_xyz_file);
但我继续收到以下错误
???使用==>时出错textscan格式错误的字符串。
我真的无法得到它!
修改
正如答案所说,正确的代码是:
n_xyz_filename = input('\nSelect the file. ', 's');
n_xyz_file = fopen(n_xyz_filename, 'r');
n_xyz = textscan(n_xyz_file, '%5d%5d%10.4f%8.1f%10.4f%8.1f%10.4f%8.1f');
fclose(n_xyz_file);
使用“d”(代表十进制)而不是“i”
答案 0 :(得分:2)
问题是格式说明符i
,textscan
无法识别。如果你想表示一个整数,你应该使用d
。因此,正确的语法是:
n_xyz = textscan(n_xyz_file, '%5d%5d%10.4f%8.1f%10.4f%8.1f%10.4f%8.1f');