以下两个语句从输入文件(fid
)中读取第一行,并将该行解析为由空格分隔的字符串。
a = textscan(fid,'%s',1,'Delimiter','n');
b = textscan(a{1}{1},'%s');
我想知道这个动作是否可以在一个单独的语句中完成,它的形式类似于下面(在语法上是无效的)。
b = textscan(textscan(fid,'%s',1,'Delimiter','n'),'%s');
谢谢。
而不是
a = textscan(fid, '%s', 1, 'Delimiter', 'n');
你可以使用
a = fgetl(fid);
这将以字符串的形式返回fid
中的下一行(末尾的换行符被剥去)。然后,您可以将该行拆分为空格分隔的块,如下所示:
b = regexp(a, 's*', 'split');
组合:
b = regexp(fgetl(fid), 's*', 'split');
请注意,这并不是100%等同于您的代码,因为使用textscan
会添加另一个单元层(表示文件中的不同行)。不过,这不是问题,只需使用
b = {regexp(fgetl(fid), 's*', 'split')};
如果你需要额外的细胞层。