【问题标题】:How to read data from a .txt file matlab [duplicate]如何从.txt文件matlab中读取数据[重复]
【发布时间】:2019-02-25 15:43:07
【问题描述】:

我在 txt 文件中有来自天线辐射图的数据:

文本继续。如您所见,数字的整数和小数部分用逗号分隔,而不是点。此外,我不需要第一行,因为它们不是值。我试过使用这段代码:

file = fread('file.txt')
data = fread(file)
fclose(file)

但是,所有数据都在一个向量中,所以我尝试将文件的一小部分可视化,写为data = fread(file, [20,4])。然而,数据是错误的,这是我得到的:

我也尝试了fscanf 函数,但我也没有工作。我想打开整个文件(之前不知道元素的数量)。

我希望有人可以帮助我。感谢您的回复。

【问题讨论】:

  • AFAIK 无法在 Matlab 中设置读取文件的文化。我的建议是在导入之前以任何方式(外部编辑器、使用 matlab 等)将逗号转换为点。
  • @Bentoy13 没有内置插件,确实如此,但即使在 MATLAB 中也可以使用足够简单的解决方法,请参阅欺骗目标。无需在两者之间使用其他程序(尽管使用小数点获取数据当然更可取)

标签: matlab octave


【解决方案1】:

你可以在很多数据读取函数中指定分隔符所以不是逗号,我觉得readtable最简单:

T = readtable( 'file.txt', 'Delimeter', 'tab' );

您的数据似乎是制表符分隔的,因此请使用'tab' 选项。你也可以使用'space' 或任何给定的字符。

然后可以转换逗号格式的小数

c = T.Properties.VariableNames;
for ii = 1:numel(c)
    t.(c{ii}) = cellfun( @(x)str2double(strrep(x,',','.')), t.(c{ii}) );
end

【讨论】:

    猜你喜欢
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多