将txt文件加载到matlab结构中

时间:2016-11-10 22:44:26

标签: matlab structure

我在下面有一个txt文件,如附图所示:

a 0.15
ne 1e25
density 200
pulse_num 2

每行有n行,2行数据。第一个数据是包含字段名称的sting,第二个数据包含值。这两个数据用空格分隔。如何将此txt文件加载到matlab结构中?基本上我想要这样的东西:

whatIwant = struct('a', 0.15, 'ne', 1e25, 'density', 200, 'pulse_num', 2)

我只知道如何将它加载到表中(使用readtable),我可以将表转换为单元格,然后转换为结构。问题是我不知道如何附加结构。我不想在我的代码中输入字段名称,所以如果我更改字段名称(或者不知道字段名称),最终结构将具有相应的字段名称。

还是有其他简单的方法可以直接加载它吗?

enter image description here

1 个答案:

答案 0 :(得分:3)

这可以使用:

完成
fid = fopen('info.txt');     %Opening the text file
C = textscan(fid, '%s%s');   %Reading data
fclose(fid);                 %Closing the text file
%Converting numeric data stored as strings in a cell to numeric data using cellfun
s=cell2struct(cellfun(@str2double,C{2},'un',0),C{1},1); %Converting into a structure array

阅读fopentextscanfclosecellfuncell2struct的文档了解详情。