***********************************数据写入txt文件
1、代码
% %13.6f 其中13表示字节长度 6表示6位小数
%需要为 \r\n 以便文档以文本文档形式 查看
% imui 需按列的形式呈现 由于函数fprintf 按照列顺序写入
imui=imu(1:5000,:)'; %为简单 选取一部分 保存为 txt 文件
fileID = fopen('imudata.txt','w');
fprintf(fileID,'%13.6f,%15.12f,%15.12f,%15.12f,%15.12f,%15.12f,%15.12f\r\n', imui);
fclose(fileID);
1补充 **********************数据写入bin文件
fid = fopen(‘1.bin’,‘w’);
a = [1, 2, 3; 4, 5, 6];
fwrite(fid,a,‘double’);
fclose(fid);
参考:
https://blog.csdn.net/pioneerzdn/article/details/117665781?ops_request_misc=&request_id=&biz_id=102&utm_term=MATLAB%E6%95%B0%E6%8D%AE%E4%BF%9D%E5%AD%98%E4%B8%BA%E4%BA%8C%E8%BF%9B%E5%88%B6bin&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-117665781.142v96control&spm=1018.2226.3001.4187
2、imui 在matlab 中的呈现
3、写入的txt文本文档呈现
***********************************读取txt数据文件
%IMUt.txt文件中为纯数字
imu=importdata('IMUt.txt');
***********************************存储mat数据文件
1、 存储的变量为imui,存储的变量名为imudata10.mat,
存储的路径为 D:\psinsGPSIMUdata\2023GIdata45\
path1 = 'D:\psinsGPSIMUdata\2023GIdata45\';
save (strcat(path1,'imudata10.mat'), 'imui')
2、 在当前文件夹下存储:
save imudata10 imui
***********************************读取mat数据文件
1、% 加载路径path1下的文件 imudata10.mat
path1 = 'D:\psinsGPSIMUdata\2023GIdata45\';
load(strcat(path1, 'imudata10.mat'))
2、加载当前文件夹下的文件
load('imudata10.mat');
***********************************数据重写为一定的格式
path = 'F:\ARTK2\result\';
fname=strcat(path,'testSRTKLC0331gb.txt');
outfile=strcat(path,'testSRTKLC0331gb.pos');
fid=fopen(fname); %读
fp=fopen(outfile,'w'); %写
sep=' '; str_vel=''; str_att='';
str_pos=sprintf('%14s%s%14s%s%14s%s%3s%s%3s%s%8s%s%8s%s%8s%s%8s%s%8s%s%8s%s%6s%s%6s',...
'x-ecef(m)',sep,'y-ecef(m)',sep,'z-ecef(m)',sep,'Q',sep,'ns',sep,...
'sdx(m)',sep,'sdy(m)',sep,'sdz(m)',sep,'sdxy(m)',sep,...
'sdyz(m)',sep,'sdzx(m)',sep,'age(s)',sep,'ratio');
str_time=sprintf('%s %-12s%s','%','GPST',sep);
str=[str_time,str_pos];
fprintf(fp,'%s',str);
fprintf(fp,'\n');
sowz=[]; i=0;
while ~feof(fid)
line=fgets(fid);
if line(1)=='n'
else
i=1+i;
val=strsplit(line);
week=2255;
sow=str2double(val(1));
% time=gpst2time(week,sow);
val=str2double(strsplit(line));
pos=val(2:4);
posP = [val(5) zeros(1,5)];
vel=val(7:9);
velP= [val(10) zeros(1,5)];
stat = val(12);
ns = val(17); %卫星个数
ratio = val(23);
age = 0.0;
str_time=sprintf('%4d%s%10.3f',week,sep,sow);
str_pos=sprintf('%s%14.4f%s%14.4f%s%14.4f%s%3d%s%3d%s%8.4f%s%8.4f%s%8.4f%s%8.4f%s%8.4f%s%8.4f%s%6.2f%s%6.1f',...
sep,pos(1),sep,pos(2),sep,pos(3),sep,stat,sep,ns,sep,posP(1),sep,posP(2),...
sep,posP(3),sep,posP(4),sep,posP(5),sep,posP(6),sep,age,sep,ratio);
str=[str_time,str_pos];
sowz=[sowz sow];
if(i~=1)
interval = sow-sowz(i-1);
if(interval ~=1) %采样间隔为0时,结果文件补全
str1= regexp(str,'\s+','split');
for j=1:(interval-1)
sow1= sowz(i-1)+j;
str1(1,2) = {num2str(sow1)};
str1(1,7) = {num2str(0)};
week=str2num(str1{1,1}); sow=str2num(str1{1,2}); pos(1) =str2num(str1{1,3}); pos(2) =str2num(str1{1,4}); pos(3) =str2num(str1{1,5});
stat=str2num(str1{1,6}); ns=str2num(str1{1,7}); posP(1)=str2num(str1{1,8}); posP(2)=str2num(str1{1,9});
posP(3)=str2num(str1{1,10}); posP(4)=str2num(str1{1,11}); posP(5)=str2num(str1{1,12});
posP(6)=str2num(str1{1,13}); age=str2num(str1{1,14}); ratio=str2num(str1{1,15});
str_time=sprintf('%4d%s%10.3f',week,sep,sow);
str_pos=sprintf('%s%14.4f%s%14.4f%s%14.4f%s%3d%s%3d%s%8.4f%s%8.4f%s%8.4f%s%8.4f%s%8.4f%s%8.4f%s%6.2f%s%6.1f',...
sep,pos(1),sep,pos(2),sep,pos(3),sep,stat,sep,ns,sep,posP(1),sep,posP(2),...
sep,posP(3),sep,posP(4),sep,posP(5),sep,posP(6),sep,age,sep,ratio);
str12=[str_time,str_pos];
fprintf(fp,'%s',str12);
fprintf(fp,'\n');
end
end
fprintf(fp,'%s',str);
fprintf(fp,'\n');
end
end
end
fclose(fp);