3

以下两个语句从输入文件 ( fid) 中读取第一行,并将所述行解析为由空格分隔的字符串。

a = textscan(fid,'%s',1,'Delimiter','\n');
b = textscan(a{1}{1},'%s');

我想知道此操作是否可以在单个语句中完成,其形式类似于以下(在语法上无效)。

b = textscan(textscan(fid,'%s',1,'Delimiter','\n'),'%s');

谢谢。

4

1 回答 1

2

代替

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')};

如果你需要那个额外的细胞层。

于 2012-01-24T10:40:16.173 回答