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,“,”)
行除了用空格替换空格外,什么都不做。我不知道你想在那里做什么。

我很好奇你为什么用相同的
'
替换
'
?这就是说,如果文件中的所有值都是数字,那么读取这些值并最终重塑矩阵可能会更容易。您会遇到什么错误?