贴一下今晚的写的matlab代码 真的很想吐

要从乱七八糟的数据中,找出数据 是否阶梯变攻角,攻角最小值,攻角最小值,攻角变化速度,总压平均值、最大最小值,-5°攻角转速,0°攻角转速,10°攻角转速,以及两个转速差......

matlab写得我好想吐啊,编译器提示又那么睿智,而且很不习惯这种语言风格,我还是爱Java,555555。

球球老师放过我吧,我要学Java

%对每个工况的所有车次数据, 计算它的 
%1.总压波动大小与平均值比   P0percent
%2.攻角=-5时转速 Rev1(试验开始时),攻角等于0时转速Rev2(转速最低点),攻角=10时转速Rev3 (结束时转速)
%  计算出两端转速差drev1=rev1-rev2,drev2=rev3-rev2
%
%画图 Ma ,攻角,总压,静压,转速
% set(h,'visible','off')
rootdir ='C:\Users\admin\Desktop\风洞在家分析\626数据_整理后的\0.6\*.xls*';

fileList =dir(rootdir);
P0_index=2;
Pct_index=3;
Rev_index=4;
Ma_index=5;
Angle_index=6;


di=1;%第di个文件
Step_trans=0;
for index=1:length(fileList)
    Step_trans=0;
    fileInfo =fileList(index);
    if (fileInfo.name=='.')|(fileInfo.name=="..")
       continue
    end
    xlsPath =fullfile(fileInfo.folder,fileInfo.name);
    [num,txt] =xlsread(xlsPath);
    P0=num(:,P0_index);
    Ma=num(:,Ma_index);
    Rev=num(:,Rev_index);
    Pct=num(:,Pct_index);
    Angle=num(:,Angle_index);
    j=1;
    Angle_start=1;
    %去掉头部攻角不变化的部分
    while j<length(Angle)
        if Angle(j)~=Angle(j+1)
            Angle_start=j;
            break;
        end
        j=j+1;
    end
    j=length(Angle)-1;
    Angle_stop=length(Angle);
    %去掉尾部攻角不变化的部分
    while j>0
        if Angle(j)~=Angle(j+1)
            Angle_stop=j;
            break;
        end
        j=j-1;
    end
%     for j=int32(length(Angle)/3):int32(length(Angle)*2/3)
     for j=Angle_start:Angle_stop
        if (Angle(j)==Angle(j+1))&&(Angle(j)==Angle(j+2))
            Step_trans=1;%是否为阶梯变攻角
            break
        end
     end
     Angle_change_length=0;
     for k=int32(length(Angle)/2):length(Angle)-1
           if Angle(k)~=Angle(k+1)
                 if Step_trans
                    Angle_change_length=Angle(k+1)-Angle(k);
                    %如果是阶梯变,该值是阶梯高度
                 else
                     Angle_change_length=(Angle(k+1)-Angle(k))*2;
                     %如果是连续变,该值是0.5秒变化的角度,所以要乘2
                 end
                 break
           end
     end
        
    start_Angle=Angle(1);
    end_Angle=Angle(length(Angle));
    rev1=Rev(1);
    rev2=min(Rev);
    rev3=max(Rev);
    drev1=rev1-rev2;
    drev2=rev3-rev2;
    meanP0=mean(P0);
    maxP0=max(P0);
    minP0=min(P0);
    P0percent=(maxP0-minP0)/meanP0;
    TongJi(di,:)=[Step_trans,start_Angle,end_Angle,Angle_change_length,meanP0,maxP0,minP0,P0percent,rev1,rev2,rev3,drev1,drev2];
%      Ma ,攻角,总压,静压,转速

%     h = figure('Visible','off');
%     subplot(3,2,1);
%     plot(Ma);
%     title("Ma");
%     subplot(3,2,2);
%     plot(Angle);
%     title("攻角");
%     subplot(3,2,3);
%     plot(P0);
%     title("总压");
%     subplot(3,2,4);
%     plot(Rev);
%     title("转速")
%     subplot(3,2,5);
%     plot(Pct);
%     title("静压");
%     dotpositon =find(fileInfo.name=='.');
%      savefig(h,fullfile(fileInfo.folder,fileInfo.name(1:dotpositon-1)));
%     data(di).dat=num(:,5);
%     data(di).name=txt{5};
    di=di+1;
end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值