我在下面有一个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
),我可以将表转换为单元格,然后转换为结构。问题是我不知道如何附加结构。我不想在我的代码中输入字段名称,所以如果我更改字段名称(或者不知道字段名称),最终结构将具有相应的字段名称。
还是有其他简单的方法可以直接加载它吗?
答案 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
阅读fopen
,textscan
,fclose
,cellfun
和cell2struct
的文档了解详情。