Matlab:是否可以从ascii文件导入数据并将它们放在结构中?

时间:2016-07-15 17:19:19

标签: matlab struct matlab-struct

我有这样的文件(param.txt):

JSS 2
ADEV 1
VERS 770
JSD 1

我想把这个文件中的数据放到一个带有变量的结构中。

我想称之为“P”,然后P是结构:

Field    Value
_____  |_______
JSS    |2  
ADEV   |1  
VERS   |770  
JSD    |1  

然后:

>>> P.JSS
ans = 
2

有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

是的,您可以使用textscan获取所有部分,然后使用struct构造函数创建您的单元格。

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

% Parse out the fieldnames and numbers
data = textscan(fid, '%s %d');

% Put the strings in the first row and the numbers in the second
alldata = [data{1}, num2cell(data{2})].';

% Pass fieldnames and values to struct()
P = struct(alldata{:});

fclose(fid);