以下两个语句从输入文件 ( 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% 等效于您的代码,因为 usingtextscan
添加了另一个单元层(表示文件中的不同行)。不过,这不是问题,只需使用
b = {regexp(fgetl(fid), '\s*', 'split')};
如果你需要那个额外的细胞层。