String Matlab错误:对strsplit的调用无效
我试图从一个字符串中分割出一组三个数字。这是我的密码:String Matlab错误:对strsplit的调用无效,string,matlab,octave,file-read,String,Matlab,Octave,File Read,我试图从一个字符串中分割出一组三个数字。这是我的密码: tline =fgetl(fid); in_points=fgetl(fid); B = strrep(in_points,' ',' ') C = char(strsplit(B)); points = reshape(str2num(C), 3, [])' 我的输入文件如下所示: p=0.01的输出1 8 8 1 4 15 1 5 17 1 17 1 13 2 10 3 2 16 4 2 18 6 2 3 3 9 7 3 3 3
tline =fgetl(fid);
in_points=fgetl(fid);
B = strrep(in_points,' ',' ')
C = char(strsplit(B));
points = reshape(str2num(C), 3, [])'
我的输入文件如下所示:
p=0.01的输出1
8 8 1 4 15 1 5 17 1 17 1 13 2 10 3 2 16 4 2 18 6 2 3 3 9 7 3 3 3 3 7 18 3 19 3 12 4 1 6 10 5 9 12 5 5 19 5 18 6 6 6 6 8 7 17 12 18 6 8 8 8 9 19 19 19 9 20 2 10 10 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 13 15 12 12 1214 18 12 3 19 12 13 9 13 20 10 13 13 13 14 14 14 13 15 15 15 15 15 15 15 11 11 16 19 5 16 11 11 11 16 19 19 19 16 16 16 16 17 19 19 19 19 1 18 10 10 13 16 18 18 6 1 19 19 19 19 19 19 7 19 11 19 19 19 19 19 19 19 19 11 19 19 19 16 16 16 16 16 19 19 19 19 19 19 19 19 19 19 19 20
我想把这些数字分开
8 1
4151
5171
等等。当我以八度音阶运行此代码时,它显示错误。任何帮助都将不胜感激。您的代码对我来说总体来说似乎很好,尽管正如Hoki在评论中提到的,可能有一种更干净的方法可以做到这一点 唯一的错误是您从未实际读取数据的第一行。第一个
fgetl
命令读取标题行。第二个读取标题和数据之间的空行,而不是你可能想要的代码<
如果在t行
和in_点
行之间添加另一个fgetl
,它对我有效
>> 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
...
正如Hoki所提到的,
B=strrep(in_points,“,”)
行除了用空格替换空格外,什么都不做。我不知道你想在那里做什么。我很好奇你为什么用相同的'
替换'
?这就是说,如果文件中的所有值都是数字,那么读取这些值并最终重塑矩阵可能会更容易。您会遇到什么错误?