【问题标题】:Textscan until end of line文本扫描直到行尾
【发布时间】:2014-05-15 19:55:22
【问题描述】:

我正在尝试对文件进行文本扫描并读取一行直到它结束,这与该行中的元素数量无关。

我的文件是一个 .txt 文件,格式如下:

602,598,302,456,1023,523,....
293,291,566,331,987,56,....
589,202,429,2911,294,567,...

等等。我有行号,所有行都有相同数量的元素,但它可能因文件而异。

我写了类似的东西:

fid = fopen('somefile.txt');
C = textscan(fid, formatSpec,'HeaderLines',Row-1);
TheLine = C{1};
fclose(fid);

X = numel(TheLine);
plot(1:X,TheLine);

我真的不知道在formatSpec 字段中输入什么。我以%[^\n] 的方式尝试了一些方法,但没有获得太多成功。

【问题讨论】:

    标签: matlab format-specifiers textscan


    【解决方案1】:

    试试这个 -

    C = textscan(fid, '%d,','HeaderLines',Row-1);
    

    Row 将指定要从文本文件中提取的数据行。

    【讨论】:

    • 甜蜜!它工作正常!你能快速解释一下这是如何工作的吗?我还没有在网上看到任何类似的东西......
    • @Marc-olivierLessard 好吧,假设您知道该特定行中有 6 个元素,您通常会这样做 - C = textscan(fid, '%d,%d,%d,%d,%d,%d,','HeaderLines',Row-1)。现在,如果您不知道元素的数量,但知道元素的格式一致,那么您只会提到一个 %d,,而 MATLAB 会在内部复制它。尽管有一些文档搜索和代码运行支持,但在这一点上这是一个很大的猜测。
    猜你喜欢
    • 2021-03-23
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多