切断文字后的文字

时间:2012-06-13 23:17:47

标签: matlab file-io comments textscan

我正在使用MATLAB中的一个函数来读取文件中的输入。到目前为止(在此处阅读了scanf个漏洞之后),我决定使用fgets获取每一行,然后textscan提取单词,这些单词将始终采用格式' chars'包括撇号。所以,我正在使用:

fid = fopen('file.txt');
tline = fgets(fid);
textscan(tline, '''%s''');

但是,我希望允许人们使用%字符进行评论。如何切断textscan以便

'word' 'anotherword' % 'comment'

不会回复评论?

2 个答案:

答案 0 :(得分:2)

fid = fopen('file.txt');
tline = fgets(fid);
pct = find(tline=='%');
tline(pct(1)-1:end)=[]; % deletes tline from first instance of '%' onward.
textscan(tline, '''%s''');

请注意,即使它在引号中,上述内容中的任何%之后也会中断。

如果你想在你引用的字符串中允许使用字符%,那么在删除其余的tline之前,你必须在测试注释%时做更多的逻辑。查看可能有用的strcmpfindstr函数。

答案 1 :(得分:0)

在调试之后再做一些阅读之后,我找到了一种更简单的方法来做到这一点。

textscan(tline, '''%s''', 'commentStyle', '%');