matab读取包含struct混合类型的mat文件转为txt文件

现有一个mat文件,其内容如下:

目标:要将data.mat中的Obs_Iridium_A转为文本格式。

分析:

data.mat里面包含了4个struct结构的成员,Obs_Iridium_A是其中之一,Obs_Iridium_A为1*7496维,7496代表里面包含了这么多个某种类型的struct,具体如下:

从上面看出struct里面的数据包含了不同类型的值,所以直接上代码:

data=load('Data.mat');

subData=data.Obs_Iridium_A;%获取Obs_Iridium_A数据

n_row=size(subData,2); %获取Obs_Iridium_A中包含的struct个数

fid = fopen('Obs_Iridium_A.txt', 'w');

 for i=1:n_row
     eachData=subData(i);%获取每个struct
     %输出每个struct的内容
     fprintf(fid, '%s\t%d\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n',...
     eachData.name,eachData.epoch,...
     eachData.position(1),eachData.position(2),eachData.position(3),...
     eachData.velocity(1),eachData.velocity(2),eachData.velocity(3),...
     eachData.elevation,eachData.azimuth,eachData.range,eachData.doppler);
end

fclose(fid);

如果struct里面的数据都是数字,那么就不需要这么繁琐了,例如:

data=load('ref_avp_all.mat');
roverDataMat=cell2mat(struct2cell(data));%data的struct全是数字
save('ref_avp_all.txt','roverDataMat','-ascii');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值