【问题标题】:Matlab - How to read values from a text file? [duplicate]Matlab - 如何从文本文件中读取值? [复制]
【发布时间】:2013-05-03 09:59:00
【问题描述】:

我知道我的问题可能与已发布的其他问题相似。但是,我浏览了显然很接近的问题的答案,但仍然无法做我想做的事。因此,我再次问我的。

我有一个这种类型的文本文件 (data.txt)。

StudentA 10

StudentB 5

StudentC 3
...

同一行的数据用制表符分隔。

如何将值(即仅表示数字 10、5、3 等)读入 Matlab 而忽略 StudentA、StudentB 等?

我做了以下。

fid=fopen('grades.txt','r');

m=fscanf(fid, '%d');

但Matlab显示的是:

m =

     []

【问题讨论】:

    标签: matlab


    【解决方案1】:

    怎么样

    fid = fopen('grades.txt','r');
    A = textscan(fid,'%s %d','Delimiter','\r\n');
    A = A{1};
    

    它应该适用于您的情况。

    【讨论】:

    • 要忽略“学生”列,您可以指定%*s 而不是%s
    • 您好,正确的代码是“A = textscan(fid,'%*s %d','Delimiter')”。非常感谢您的帮助。
    【解决方案2】:

    看看this question,它处理类似的情况。在问题中,文件格式为:

    1 2 3 sometext
    4 5 6 somemoretext
    etc...
    

    提出的解决方案使用textread 读取和标记元素,然后将它们转换回具有一些索引逻辑的矩阵。这也应该适用于您的情况。

    【讨论】:

    • 为什么不把这个问题标记为重复呢?
    • @EitanT shrugs 我可以,但是 fpe 给出了一个我认为更好的答案,并且比我链接的那个需要更少的 faff。
    • 仔细想想,你是对的。我仍然会将其标记为重复,以帮助未来的用户浏览这些问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    相关资源
    最近更新 更多