Matlab读取文件内容至结构体中

speMatlab读取⽂件内容结构体中
⽂章⽬录
⼀、思路
⽐如现在我有这样⼀个⽂件:⽂件第⼀⾏存储的是字段名,下⾯存的都是数据,将这样⼀个⽂件读到⼀个结构体中的思路如下:取第⼀⾏,保存各个字段名称到⼀个元胞数组
⽤eval根据第⼀⾏的字段构造结构体,
下⾯的代码是可以跑通的
a.name=1
a.sex=2
中国少年先锋队章程
a(2).name=1
本来并不存在a,代码第⼀⾏⽣成了a并在a中添加了字段name,代码第⼆⾏在a中添加了字段sex,第三⾏将结构体a升级成了结构体数组,并向结构体数组a中添加了第⼆个元素,将其name字段值设定为1。
a.name指的是a这个结构体数组第⼀元素的name字段,并不是a所有元素的name字段,得到的是⼀个值,⽽不是⼀个数组。
⼆、实现
% get struct from clkdif file
function stu=read_dif(file)
街头三维立体画fid=fopen(file,'r');
str = fgetl(fid);人因工程
S = regexp(str, '\s+', 'split');  %field
n=length(S);
j=1;
while ~feof(fid)
分片阈值str = fgetl(fid);
str=strtrim(str);    %rm the blankSpace on the beg and end
if str(1)=='-'
continue;
end
if str(1:3)=='EOF'
break;
end
tmp = regexp(str, '\s+', 'split');
for i=1:n
eval(['stu(j).',S{i},'=tmp{i};']);
end
j=j+1;
end
fclose(fid);
end
注意:最后得到的是⼀个存放着char类型的元胞矩阵。实际上,⼀般这种整齐的结构可以⽤⼀个⼆维矩阵表⽰(在⽂件内容存放的数据类型都是数据或长度⼀致的char类型时),只有在迫不得已的情况下才考虑⽤这种,因为⽐较费时!
三、调⽤
⽰例⽂件:
制定和制订的区别name    sex      age    hobby
aa      man      4      8
ab      wom      5      9
bb      wom      6      10
cc      man      7      11
调⽤:
clc;clear;
file='C:\Users\OHanlon\'; tic;
stu=read_dif(file);
toc;

本文发布于:2024-09-20 22:54:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/361186.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:结构   字段   数组   元胞   内容   得到   代码   称到
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议