用Matlab的.m脚本文件处理实验室数据

找到相应的文件

findfile

%1 打开文件夹
%2 拷贝第一个文件
%3 关闭当前文件,再次拷贝新的文件,直到文件末尾结束
clc
clear
DST_PATH_t = 'C:\Users\Manual\Desktop\航次11\1234567890';%目的文件目录 
directory = uigetdir('','选择指定文件夹:');
day_char = '0730'; %时间 天
hour_char = '00'; %时 00 - 23
minute_char = '00'; % 取值范围 00 - 60
num_char = '00'; %文件的序号 取值范围 00 - 60
k = 0;
hour_k = 0;
minute_k = 0;
num_k = 0;
sum_file = 0;
for hour_k = 0:9 %时
    hour_char = num2str(hour_k);
    for minute_k = 0 : 60 %分
        minute_char = num2str(minute_k);
        for num_k = 0 :60 %秒
            num_char = num2str(num_k);
            if minute_k < 10 %分
                if num_k < 10  %秒
                    filepath = fullfile(directory,[day_char '0' hour_char '0' minute_char '0' num_char])
                end
                if num_k >= 10
                    filepath = fullfile(directory,[day_char '0' hour_char '0' minute_char num_char])
                end
            end  %end if minute_k < 10 
            
            if minute_k >= 10
                if num_k < 10  %秒
                    filepath = fullfile(directory,[day_char '0' hour_char  minute_char '0' num_char]) % 08 01 00 11 09
                end
                if  num_k >= 10
                    filepath = fullfile(directory,[day_char '0' hour_char  minute_char num_char])
                end
            end %end if if minute_k >= 10
            
              if exist(filepath,'dir') == 7 
%                  fprintf('%d',exist('H:\2307-8.31-10.2\RadarFile\0924002707','dir'))
                    filepath
                    readfiles = dir(filepath);
                    filename = readfiles(3).name;
%                     while 1
%                     end
                    cd(filepath);
                    copyfile(filename,DST_PATH_t);
                    sum_file = sum_file + 1;
                    break;
            end
        end
    end
end

for hour_k = 10:23 %时
        hour_char = num2str(hour_k);
        for minute_k = 0 : 60 % 分
            minute_char = num2str(minute_k);
            for num_k = 0 : 60 %秒
                num_char = num2str(num_k);
%                 filepath = fullfile(directory,[day_char hour_char minute_char num_char]);
            if minute_k < 10 %分
                if num_k < 10  %秒
                    filepath = fullfile(directory,[day_char hour_char '0' minute_char '0' num_char])
                end
                if num_k >= 10
                    filepath = fullfile(directory,[day_char hour_char '0' minute_char num_char])
                end
            end  %end if minute_k < 10 
            
            if minute_k >= 10
                if num_k < 10  %秒
                    filepath = fullfile(directory,[day_char hour_char  minute_char '0' num_char]) % 08 01 00 11 09
                end
                if  num_k >= 10
                    filepath = fullfile(directory,[day_char hour_char  minute_char num_char])
                end
            end %end if if minute_k >= 10
                             
                if exist(filepath,'dir') == 7 %路径存在 
%                     fprintf('%d',exist(filepath,'dir'))
                    filepath
                    readfiles = dir(filepath);
                    filename = readfiles(3).name;
                    cd(filepath);
                    copyfile(filename,DST_PATH_t);
                    sum_file = sum_file + 1;
                    break;
                end
            end
        end  
end
fprintf('当前未查找到的文件个数 %d 个\n',24 - sum_file)

筛选出响应时间的谱

%1 根据大概的文件时间,找到近似的文件
%2 将文件保存到指定文件夹下
% addpath('H:\2307_20180822\D\RadarFile');
clc;
clear;
k = 9;
char = '53'
DST_PATH_t = 'C:\Users\Manual\Desktop\航次11\pu\2018_07_30';%目的文件目录 
directory = uigetdir('','选择指定文件夹:');
for i = 0:2 %共24个文件夹
    for j = 0 : 9
        filepath = fullfile(directory,['CalcReslut' num2str(i,'%d') num2str(j,'%d') '_' char '.dat'])
        %判断文件是否存在
%         while k < 10
%             if exist(filepath,'file') == 2 %如果文件存在
%                 break;
%             end
%             filepath = fullfile(directory,['CalcReslut' num2str(i,'%d') num2str(j,'%d') '_' '0' num2str(k,'%d') '.dat'])
%             k = k + 1;
%         end    
%         k = 9;
        while k < 60
            if exist(filepath,'file') == 2
                break;
            end
            filepath = fullfile(directory,['CalcReslut' num2str(i,'%d') num2str(j,'%d') '_' char '.dat'])
            k = str2num(char);
            k = k + 1;
            char = num2str(k);
        end
         char = '53';
         k = str2num(char);
        if ((i == 2) && (j == 4))
            break;
        end 
        if exist(filepath,'file') == 2 
        copyfile(filepath,DST_PATH_t);
        end
    end
end

画雷达图像,类似600点程序

%我有一个目标:根据数据绘制雷达图像 
%1°要搞清楚数据协议
%2°作图的原理
%当前程序的功能:
%1°了解绘图的机制
%2°了解我不知道的关于数据的东西

clear
clc
close all
cd('C:\Users\Manual\Desktop\航次11')
%month=3;
day1=1;
day2=31;%取5月2号到5月4号的时间
mode=0;%只绘中脉冲
% DiffNum=250;%间隔100文件采样
DiffNum=1;%200个文件采样,大约10分钟一个图
mkdir('Pic3');
path_save=[cd '\Pic3\'];

[filename_ogr] = uigetdir;%选择数据文件位置
FolderInformation=dir(filename_ogr);
% FolderInformation=dir('RadarFile');%当前文件夹信息
FolderNames={FolderInformation.name}';%当前文件夹下所有名字
FolderIndex=[];
for i=1:length(FolderNames)
    if(length(FolderNames{i,1})==10)
        FolderIndex=[FolderIndex i];%记录雷达文件序号;每次运行列的维度加1,等价于有逗号,如果用分号则是行的维度加1
    end
end
FolderNum=length(FolderIndex);%文件夹数目
for j=1:FolderNum
    fileFolder=[filename_ogr '\' FolderNames{FolderIndex(j),1}];%一种拼接路径的方式
    dirOutput=dir(fullfile(fileFolder,'*.dat'));%dir函数可以返回一个类似于结构体的东西,其中包含name项
    fileNames={dirOutput.name}';
    fileNum=length(fileNames);%文件夹下文件数目
    filePath=cell(fileNum,1);
    %%    
    i=0;
    for kk=1:DiffNum:fileNum
        i=i+1;%i+=1
        filePath=[fileFolder '\' fileNames{kk,1}];%当前文件路径文件夹路径+.dat文件名
        Name=fileNames{kk,1};
        %mm=str2num(Name(9:10));%月
        dd=str2num(Name(11:12));%日
        %if(mm==month)
            if(dd>=day1&&dd<=day2)
                SavePic(filePath,Name,mode,path_save);
            end
        %end                     
    end  
    disp(['完成' num2str(j/FolderNum*100) '%']);
end
disp(['Finished!']);

保存图像

function SavePic( pathname,filename,mode,path_save)
%UNTITLED2 此处显示有关此函数的摘要
%   此处显示详细说明
    R_num=600;%600
    R_num1=400;
    dr=7.5;%dr
    
    fid_0=fopen(pathname,'r','l');%小端模式
    fseek(fid_0,10312,'bof');
    linenum=fread(fid_0,1,'ubit16');
    fclose(fid_0);
    if(linenum>7000)
        Mode=0;
    elseif(linenum>5000&&linenum<=7000)
        Mode=1;
    else
        Mode=2;
    end
%     if(mode~=Mode)
%         return
%     end
    fid_0=fopen(pathname,'r','ieee-be');%上文是小端模式,这里却又是大端,是否有问题?
    
    fseek(fid_0,18,'bof');%%_pg暂时不明原因
    shipDir=fread(fid_0,1,'uint32')*180/2^30;%%_pg船艏角
    shipZong=fread(fid_0,1,'uint32')*90/2^30;%纵摇角
    shipHeng=fread(fid_0,1,'uint32')*90/2^30;%横摇角
    
    fseek(fid_0,3020,'bof');%%
    lat=fread(fid_0,1,'int32')*90/2^30;%4个字节,32位 %%_pg经度
    long=fread(fid_0,1,'int32')*90/2^30;             %%_pg纬度
    seaDeep=fread(fid_0,1,'uint32')*0.01;%%%%     水深为0时,赋值50
    %vel2flow=fread(fid_0,1,'int16')*0.01*1852/3600;%%_相对航速
    vel2flow=fread(fid_0,1,'int16')*0.01;%VC程序上是如此算,航速
    velReal=fread(fid_0,1,'int16')*0.01;% wamos的数据这一位有为-9的时候,所以由 uint16 改成 int16 2011-11-14%%绝对航速
    velEast=fread(fid_0,1,'int16')*0.01;%%东向速度
    velNorth=fread(fid_0,1,'int16')*0.01;%%北向速度
    velWinDir=fread(fid_0,1,'ubit16')*180/2^14;%%_pg平均真风向_和协议上有些不一样
    velWind=fread(fid_0,1,'ubit16')*0.01;%%平均真风速
    fclose(fid_0);

    fid_0=fopen(pathname,'r');
    status = fseek(fid_0,3114,'bof');
    temp_data=fread(fid_0,[1,3601],'ubit16');%%角度信息_pg
    n_line=temp_data(1);%%总线数
    data_all=fread(fid_0,'ubit16');%%图像数据_pg
    data_all=bitand(data_all,16383);  %%%128*128 = 16384  %%_pg应该是为了使大于2000H的数变为2000H
    fclose(fid_0);
    %% 数据处理
    Gray=reshape(data_all,[R_num,n_line]);
    Gray_temp=Gray(1:400,:);
    if seaDeep==0
        seaDeep=50;
    end
    if shipHeng>180
        shipHeng=shipHeng-360;
    elseif shipHeng<-180
        shipHeng=shipHeng+360;
    end
    if shipZong>180
        shipZong=shipZong-360;
    elseif shipZong<-180
        shipZong=shipZong+360;
    end
    shipHeng=roundn(shipHeng,-2); %保留小数点后两位
    shipZong=roundn(shipZong,-2);
    str_sH=num2str(shipHeng);
    str_sZ=num2str(shipZong);

    wind_angle=360-shipDir+velWinDir;%风向角
    point1_x=R_num1*dr*sind(wind_angle);%风向标识起点
    point1_y=R_num1*dr*cosd(wind_angle);
    point2_x=R_num1*dr*1.1*sind(wind_angle);%风向标识终点
    point2_y=R_num1*dr*1.1*cosd(wind_angle);
    wind_x=[point1_x point2_x];
    wind_y=[point1_y point2_y];
    wind_length=((point1_x-point2_x)^2+(point1_y-point2_y)^2)^0.5;
    jiantou_angle=40;%风向标识箭头的角度
    point3_xt=wind_length*0.5*sind(wind_angle+jiantou_angle);
    point3_yt=wind_length*0.5*cosd(wind_angle+jiantou_angle);
    point4_xt=wind_length*0.5*sind(wind_angle-jiantou_angle);
    point4_yt=wind_length*0.5*cosd(wind_angle-jiantou_angle);
    point3_x=point1_x+point3_xt;%风向标识的箭头坐标
    point3_y=point1_y+point3_yt;
    point4_x=point1_x+point4_xt;
    point4_y=point1_y+point4_yt;
    wind_x1=[point3_x point1_x];%为了使用plot连线
    wind_y1=[point3_y point1_y];
    wind_x2=[point4_x point1_x];
    wind_y2=[point4_y point1_y];
    %% 画图配置
    alpha=linspace(0,2*pi,n_line);%极坐标,角
    r=linspace(0,400*dr,400);%极坐标,半径 %.600
    [alpha,r]=meshgrid(alpha,r);
    x=r.*cos(alpha);
    y=r.*sin(alpha);
    %% 为了使输出图像好看
    set(gcf, 'PaperPositionMode', 'manual');
    set(gcf, 'PaperUnits', 'inches');
    %     set(gcf, 'PaperPosition', [5 5 4.5 4]);
    set(gcf, 'PaperPosition', [5 5 5.5 4]);
    %% 画图和输出
    mesh(y(20:400,:),x(20:400,:),Gray_temp(20:400,:));%.600
    view(0,90);
    colorbar
    hold on
%     plot(wind_x,wind_y,'r','LineWidth',2);    %风向标识
%     plot(wind_x1,wind_y1,'r','LineWidth',2);
%     plot(wind_x2,wind_y2,'r','LineWidth',2);

    text(-(R_num1*(dr-1900/600+1900/600)),R_num1*(dr+500/600),['经度:',num2str(lat),'°E'],'Color','k');
    text(-(R_num1*(dr-1900/600+1900/600)),R_num1*(dr+100/600),['纬度:',num2str(long),'°N'],'Color','k');

    text(R_num1*(dr-1400/600),R_num1*(dr+500/600),['航速:',num2str(vel2flow),'节'],'Color','k');
    text(R_num1*(dr-1400/600),R_num1*(dr+100/600),['航向:',num2str(roundn(shipDir,-2)),'°'],'Color','k');
    text(R_num1*(dr-1400/600),R_num1*(dr-300/600),['风速:',num2str(velWind),'m/s'],'Color','k');
    text(R_num1*(dr-1400/600),R_num1*(dr-800/600),['风向:',num2str(roundn(velWinDir,-2)),'°'],'Color','k');
    %   %dr-2500/600 dr-2200/600 dr-1900/600
    text(R_num1*(dr-1400/600),-(R_num1*(dr-900/600)),['东速:',num2str(velEast),'节'],'Color','k');
    text(R_num1*(dr-1400/600),-(R_num1*(dr-500/600)),['北速:',num2str(velNorth),'节'],'Color','k');
    text(R_num1*(dr-1400/600),-(R_num1*(dr-100/600)),['地速:',num2str(velReal),'节'],'Color','k');
    %1900 2200 2500
    text(-(R_num1*(dr-1900/600+1900/600)),-(R_num1*(dr-900/600)),['纵摇:',str_sZ,'°'],'Color','k');
    text(-(R_num1*(dr-1900/600+1900/600)),-(R_num1*(dr-500/600)),['横摇:',str_sH,'°'],'Color','k');
    text(-(R_num1*(dr-1900/600+1900/600)),-(R_num1*(dr-100/600)),['海深:',num2str(seaDeep),'m'],'Color','k');
    %1900/600+2200/600  2200/600+2200/600  2500/600+2200/600
    name=filename(1:end-4);%纯粹的文件名,不带任何后缀的
    name_txt=name;
    name_txt(find(name(1,:)=='_'))='-';%text中‘_’有别的含义,在此替换为‘-’
    text(-(R_num1*(dr-5400/600+2100/600)),R_num1*(dr+100/600),name_txt,'Color','r');
    hold off
    print(1, '-dpng',[path_save name]);

end

绘制一维谱和二维谱

%%
%把设备输出谱文件放入pu文件夹,运行即可
%Date:2017/12/5
%Author:pg
%%
clear
clc
cd('C:\Users\Manual\Desktop\航次11')
FolderInformation=[cd '\pu'];
FolderNames=dir(FolderInformation);%当前文件夹下所有名字
mkdir('OneDimension');
mkdir('TwoDimension');
mkdir('result');

useless1=0;
for DayNum=1:length(FolderNames)
    if(isempty(regexpi(FolderNames(DayNum).name,'^[0-9]{4}_[0-9]{2}_[0-9]{2}$')))
        continue;
    end
    Today=FolderNames(DayNum).name;%当前日期    
    fileFolder=[FolderInformation '\' Today];
    dirOutput=dir(fullfile(fileFolder,'*.dat'));
    fileNames={dirOutput.name}';
    fileNum=length(fileNames);%文件夹下文件数目
    fid=fopen([cd '\result\' num2str(str2num(Today(6:7))) num2str(Today(9:10)) '.txt'],'w');%写结果文件
    for kk=1:fileNum
        filename_data=[fileFolder '\' fileNames{kk,1}];
        %     filename_data='Result2017_03_18_829.dat';%信息处理计算机生成的历史数据信息
        %% 数据读取
        TodayTime=fileNames{kk,1}(end-8:end-4);%end表示的是最后一个,等价于end-0;
        ShowTime=[Today  '_' TodayTime];
        ShowTime(find(ShowTime=='_'))='-';
        fid_0=fopen(filename_data,'r','ieee-be');%读取方式应当使用这一种

        status = fseek(fid_0,4,'bof');
        temp=fread(fid_0,6,'ubit16');

        WaveH=temp(2)*0.1;%波高
        WaveD=temp(3)*2^(-14)*180;%波向
        WaveT=temp(4)*0.1;%波周期
        FlowV=temp(5)*0.1;%流速,m/s
        FlowD=temp(6)*2^(-14)*180;%流向

        temp=fread(fid_0,8,'ubit8');%.可能已经没用了
%         time=[num2str(temp(1)) num2str(temp(2)) '.' num2str(temp(3)) '.' num2str(temp(4)) '-' num2str(temp(6)) ':' num2str(temp(7)) ':' num2str(temp(8))];%时间
        long=fread(fid_0,1,'int32')*90/2^30;%经度
        fat=fread(fid_0,1,'int32')*90/2^30;%纬度

        fclose(fid_0);
        %% 一维频谱
        fid_0=fopen(filename_data,'r');%这里的读取方式应当使用这一种而非"ieee-be"
        status = fseek(fid_0,32,'bof');
        Num=fread(fid_0,1,'ubit16');%频率个数
        OneDimensional_Frequency=zeros(1,Num);
        OneDimensional_Spec=zeros(1,Num);
        for i=1:Num
            OneDimensional_Frequency(i)=fread(fid_0,1,'int16')*0.001;
            OneDimensional_Spec(i)=fread(fid_0,1,'int16')/10000;
        end
        figure(1)
        title(filename_data(6:end-4));
        plot(OneDimensional_Frequency,OneDimensional_Spec,'-*');
        title([ShowTime]);
        %% 二维频率谱
        Num2=fread(fid_0,1,'ubit16');%频率个数\
        % Num2=121;

        TwoDimensional_FrequencyX=zeros(1,Num2^2);
        TwoDimensional_FrequencyY=zeros(1,Num2^2);
        TwoDimensional_Spec=zeros(1,Num2^2);
        for i=1:Num2^2
            TwoDimensional_FrequencyX(i)=fread(fid_0,1,'int16')*0.001;
            TwoDimensional_FrequencyY(i)=fread(fid_0,1,'int16')*0.001;
            TwoDimensional_Spec(i)=fread(fid_0,1,'int16')/40000;
        end

        %% 信噪比、模式读取
        mode=fread(fid_0,1,'ubit8');
        Sn=fread(fid_0,1,'ubit16')*0.001;
        %%
        figure(2)
        fclose(fid_0);
        %% 二维频谱绘制处理
        fx_neg=reshape(TwoDimensional_FrequencyX,Num2,Num2);
        fy_neg=reshape(TwoDimensional_FrequencyY,Num2,Num2);
        sp30_neg=reshape(TwoDimensional_Spec,Num2,Num2);

        v0=max(max(sp30_neg));
        v=v0*.1:v0*0.1:v0;
        C=contour(fx_neg,fy_neg,sp30_neg,v);%_pg 增加一个输出,为了输出谱文件 2016.1.20
        shading interp;
        hold on
        angle = linspace(0,2*pi,100);
        r = [12,10,8,6,4];       %% 10-05-13 peach 画图显示频率
        R = 1./r;
        for ti=1:length(R)
            px = R(ti)*cos(angle);
            py = R(ti)*sin(angle);
            plot(px,py,'-');
        end
        R0=0.25;
        plot([-R0,R0],[0,0],':');
        plot([0,0],[-R0,R0],':');
        axis([-R0 R0 -R0 R0]);
        set(gca,'XTick',-R0:0.05:R0);
        set(gca,'YTick',-R0:0.05:R0);
        axis square
        %%%%%%%%%%  %% 10-05-13 peach 画图显示频率
        text( -R(5)/1.4,R(5)/1.4,'4 s','color','k','Fontsize',10,'fontweight','bold');
        text( -R(4)/1.4,R(4)/1.4,'6 s','color','k','Fontsize',10,'fontweight','bold');
        text( -R(3)/1.4,R(3)/1.4,'8 s','color','k','Fontsize',10,'fontweight','bold');
        text( -R(2)/1.4,R(2)/1.4,'10 s','color','k','Fontsize',10,'fontweight','bold');
        text( -R(1)/1.4,R(1)/1.4,'12 s','color','k','Fontsize',10,'fontweight','bold');

        newangle=0:(2*pi/12):2*pi;
        myx1=-R0:0.01:R0;
        myy1=-R0:0.01:R0;
        myx=sqrt(myx1.^2+ myy1.^2);

        for i=1:length(newangle)
            plot(myx.*cos(newangle(i)),myx.*sin(newangle(i)),':')
            hold on
        end
        text(-0.0077, R0*0.97,'North ','color','k','Fontsize',12,'fontweight','bold');
        xlabel('f_x (1/s)','fontweight','bold');
        ylabel('f_y (1/s)','fontweight','bold');
        hold off
        colorbar
        title(ShowTime);
        print(1, '-dpng',['OneDimension\' 'RadarOneDimension' ShowTime ]);%'A'
        print(2, '-dpng',['TwoDimension\' 'RadarTwoDimension' ShowTime ]);%'B'
        timenow=str2num(TodayTime(1:2))*100+str2num(TodayTime(4:5));
        fprintf(fid,'%d   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f   %4.2f\n ',timenow,Sn,WaveH,WaveD,WaveT,mode,useless1,useless1,useless1,useless1,useless1,useless1,useless1);       
        disp([num2str(kk*100*DayNum/fileNum/length(FolderNames)) '%']);
        clf
        
    end
    fclose(fid);
end
fclose all

删除文件

%删除文件
clc;
clear;
cd('C:\Users\Manual\Desktop\航次11\TwoDimension');
DST_PATH_t = 'C:\Users\Manual\Desktop\航次11\NewTwoDimension';%目的文件目录 
filepath = 'C:\Users\Manual\Desktop\航次11\Pic3'; %放置Pic3图像的文件夹
readfiles = dir(filepath);

intmintime = 0;
inthourtime = 0;
intdaytime = 0;

pic3filenumber = 0;

 for i = 3: length(readfiles)
    monthtime = readfiles(i).name(9:10); %月
    daytime  = readfiles(i).name(11:12); %天
    hourtime = readfiles(i).name(13:14); %时
    mintime = readfiles(i).name(15:16); %分
    
    intdaytime = str2num(daytime);
    inthourtime = str2num(hourtime);
    intmintime = str2num(mintime);

    if intmintime < 10
     FileRadarTwoDimension = fullfile(['RadarTwoDimension2018-' monthtime '-' daytime '-' hourtime '-' '0' mintime '.png']);
    end 
    
    if intmintime >= 10
        FileRadarTwoDimension = fullfile(['RadarTwoDimension2018-' monthtime '-' daytime '-' hourtime '-' mintime '.png']);
    end
    while intmintime > 0
         if exist(FileRadarTwoDimension,'file') == 2
             %执行拷贝等功能
             FileRadarTwoDimension
             copyfile(FileRadarTwoDimension,DST_PATH_t);
             pic3filenumber = pic3filenumber + 1;
             break;
         end
         intmintime = str2num(mintime);
         intmintime = intmintime - 1;
         mintime = num2str(intmintime);
             
         if intmintime < 10
             FileRadarTwoDimension = fullfile(['RadarTwoDimension2018-' monthtime '-' daytime '-' hourtime '-' '0' mintime '.png']);
         end
      
     end
 end
 fprintf('Pic3图像数为 %d\n',pic3filenumber);

参考资料
1 https://ww2.mathworks.cn/help/matlab/matlab_prog/debugging-process-and-features.html 调试 MATLAB 程序
2 https://blog.csdn.net/s151506879/article/details/52074559 matlab-fullfile使用
3 https://blog.csdn.net/qq_18995069/article/details/80324588 【Matlab编程实现常见小问题之一】Matlab如何读取指定文件夹下的指定类型文件
4 https://blog.csdn.net/yeyang911/article/details/78119779 matlab 移动(复制)文件到另一个文件夹
5 https://blog.csdn.net/qikaihuting/article/details/70244416 matlab中dir函数以及sort函数的用法
6 https://www.ilovematlab.cn/thread-536023-1-1.html 如何依次循环读取多个文件夹下的所有txt文件

转载于:https://www.cnblogs.com/Manual-Linux/p/10920326.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值