我是靠谱客的博主 动人胡萝卜,最近开发中收集的这篇文章主要介绍MATLAB循环处理数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文档转为Excel

clc;
clear;
close all;
wd_path= 'C:UsersAdministratorDesktop1.13';   %文件夹路径 
wd_path_list = dir(strcat(wd_path,'*.txt'));      %%dir('.')列出当前目录下所有子文件夹和文件%
wd_num = length(wd_path_list);                    %文件的长度
Newexcel_path='C:UsersAdministratorDesktop1.13';
opts = delimitedTextImportOptions("NumVariables", 17);
% 指定分隔符
opts.Delimiter = ",";
for i=1:wd_num
    filename = strcat('1.',num2str(i),'.txt');
    A = readtable(filename,opts);
    B = table2array(A);
    GPFPD_count=1;
    GTIMU_count=1;
    GPFPD=cell(ceil(size(B,1)/2+1),17);
    GTIMU=cell(ceil(size(B,1)/2+1),17);
    for j=1:size(B,1)   
        str=string(B{j,1});     %将导入的cell类型数据一行一行地提取出来 提取为string类型
        IsGPFPD=contains(str,"GPFPD");      %判断提取的string数据中是否包含有GPFPD
        IsGTIMU=contains(str,"GTIMU");
        if IsGPFPD
            GPFPD(GPFPD_count,:)=B(j,:);
            GPFPD_count=GPFPD_count+1;      %GPFPD数据条数+1
        end
        if IsGTIMU
            GTIMU(GTIMU_count,:)=B(j,:);
            GTIMU_count=GTIMU_count+1;
        end
    end
    sheet2=2;
    sheet3=3;
    xlswrite((strcat(Newexcel_path,int2str(i),'.xlsx')),GPFPD,sheet2);
    xlswrite((strcat(Newexcel_path,int2str(i),'.xlsx')),GTIMU,sheet3);
end
循环处理

clc;
clear;
close all;
excel_path= 'C:UsersAdministratorDesktop1.13';   %文件夹路径 
excel_path_list = dir(strcat(excel_path,'*.xlsx')); %%dir('.')列出当前目录下所有子文件夹和文件%
excel_num = length(excel_path_list);            %文件的长度
Newexcel_path='C:UsersAdministratorDesktop1.13data';   %若想对读取的Excel进行处理,新的excel存放地址
%img_name = sort({img_path_list.name});      %排序后的文件名
for i=1:excel_num
    gtimu=xlsread([num2str(i),'.xlsx'],'sheet3');
    W=gtimu(:,5);   %%陀螺仪Z轴角速率
    W=W'; 
    ax=gtimu(:,6);   %%X轴加速度
    ay=gtimu(:,7);   %%Y轴加速度
    az=gtimu(:,8)-0.98;   %%Z轴加速度
    a=sqrt(ax.^2+ay.^2+az.^2);
    a=a';
    W=W(1:100:end);
    a=a(1:100:end);
    gpfpd=xlsread([num2str(i),'.xlsx'],'sheet2');
    Xv=gpfpd(:,9);   %%X轴线速速
    Yv=gpfpd(:,10);  %%Y轴线速度
    Zv=gpfpd(:,11);  %%Z轴线速度
    Vv=sqrt(Xv.^2+Yv.^2+Zv.^2);  
    V=Vv(1:100:end);
    V=V';

    x_true = TODBT(gpfpd(:,7),gpfpd(:,6),gpfpd(:,8));
    plot(x_true(:,1),x_true(:,2))
    x_true=x_true';
    ZTtrain=[];
for U=1:100:length(x_true)
    A=x_true(:,U);
    Y=[ZTtrain,A];
    ZTtrain=Y;
end
plot(ZTtrain(1,:),ZTtrain(2,:))
path="C:UsersAdministratorDesktop1.13data";
str=strcat(path,'JPG',num2str(i),'.jpg');
saveas(gcf,str);
B=[V;W;a;ZTtrain];
%xlswrite('data.xlsx',B,'Sheet1');
xlswrite((strcat(Newexcel_path,'data',int2str(i),'.xlsx')),B);
  
end
批量文档重命名

clc;
clear;
close all;
wd_path= 'C:UsersAdministratorDesktop1.14';   %文件路径 
Newexcel_path='C:UsersAdministratorDesktop1.13';
files = dir(strcat(wd_path,'*.txt'));      %%dir('.')列出当前目录下所有子文件夹和文件%
len = length(files);                    %文件的长度
for i=1:len
    oldname = files(i).name;
    newname=strcat('1.',int2str(i+54),'.txt');
    command = ['rename' 32 oldname 32 newname];
    status = dos(command);
    movefile(newname,Newexcel_path);
end

最后

以上就是动人胡萝卜为你收集整理的MATLAB循环处理数据的全部内容,希望文章能够帮你解决MATLAB循环处理数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部