我试图从一个字符串中划分出一组三个数字。这是我的代码:
tline =fgetl(fid);
in_points=fgetl(fid);
B = strrep(in_points,' ',' ')
C = char(strsplit(B));
points = reshape(str2num(C), 3, [])'
我的输入文件如下所示:
output 1 for p=0.01
8 8 1 4 15 1 5 17 1 17 17 1 13 1 2 10 3 2 16 4 2 18 6 2 6 3 3 9 3 3 9 7 3 2 13 3 7 18 3 19 20 3 12 4 4 1 6 4 12 10 5 9 12 5 8 19 5 18 4 6 13 9 6 12 16 6 6 8 7 17 12 7 18 6 8 7 15 8 8 8 9 3 19 9 17 19 9 20 2 10 20 4 10 3 8 10 11 7 11 10 12 11 4 14 11 19 3 12 4 11 12 6 11 12 11 13 12 19 14 12 13 15 12 14 18 12 3 19 12 1 3 13 9 9 13 20 10 13 5 13 13 4 17 13 15 16 14 11 18 14 20 3 15 6 13 15 7 16 15 12 17 15 9 1 16 11 1 16 9 5 16 11 12 16 11 16 16 20 19 16 19 13 17 16 16 17 5 19 17 19 1 18 20 10 18 13 16 18 6 1 19 16 4 19 20 7 19 13 11 19 2 19 19 1 6 20 10 14 20 16 15 20 18 16 20 7 20 20
我想将数字分开为
8 8 1
4 15 1
5 17 1
等等。当我以八度音程运行此代码时,它显示错误。任何帮助将不胜感激。
答案 0 :(得分:0)
你的代码对我来说似乎一般都很好,尽管正如Hoki的评论中提到的那样,可能有一种更清洁的方法。
唯一的错误是你从未真正读过数据的第一行。第一个import zipfile, sys, os,
zf = zipfile.ZipFile(sys.argv[1], 'r')
for m in zf.infolist():
data = zf.read(m) # extract zipped data into memory
# convert unicode file path to utf8
disk_file_name = m.filename.encode('utf8')
dir_name = os.path.dirname(disk_file_name)
try:
os.makedirs(dir_name)
except OSError as e:
if e.errno == os.errno.EEXIST:
pass
else:
raise
except Exception as e:
raise
with open(disk_file_name, 'wb') as fd:
fd.write(data)
zf.close()
命令读入标题行。第二个读取标题和数据之间的空白行,而不是您可能想要的空白行fgetl
如果您在in_points
和fgetl
行之间添加另一个tline
,那么它对我有用。
in_points
正如Hoki所提到的,>> points
points =
8 8 1
4 15 1
5 17 1
17 17 1
13 1 2
10 3 2
16 4 2
18 6 2
6 3 3
9 3 3
9 7 3
...
行只会用空格替换空格。不确定你在那里做什么。