Matlab学习-自定义函数

Matlab学习-自定义函数

常用自定义函数

1. 打印时间

function result = calculate_time(time)
    % Function describe : calculate time
    % Input  : time:N*1
    % Output : result.hour/min/sec = hour/min/sec
    %                   result.fre = Sampling rate
    dt = time(2) - time(1);
    freq = 1/dt;
    result.fre = freq;

    total_time = size(time,1)*dt;
    hour = floor(total_time/3600);
    min = floor(mod(total_time,3600)/60);
    sec = total_time-3600*hour-60*min;

    result.hour = hour;
    result.min = min;
    result.sec = sec;

    s = sprintf('Time length: %dh-%dm-%.2fs, time diff: %f s, frequency: %d Hz\n', hour, min, sec, dt, round(freq));
    disp(s);

end

在这里插入图片描述

2. 计算统计参数

function result = statistical_analysis(data,flag,precision)
% Input : data: analyser data
%         flag: true or false   analysis absolute data or raw data
%         precision: output data precision
% Output: result = [rms std mean max min median]

column = size(data,2);
flage.absolute = flag;  % true: abs     flase: raw data

for i = 1:column
    result(i,1) = sqrt(mean(data(:,i).^2));     % rms
    result(i,2) = std(data(:,i));               % std
    if (flage.absolute)
        result(i,3) = mean(abs(data(:,i)));     % mean
        result(i,4) = max(abs(data(:,i)));      % max
        result(i,5) = min(abs(data(:,i)));      % min
        result(i,6) = median(abs(data(:,i)));   % median
    else
        result(i,3) = mean(data(:,i));          % mean
        result(i,4) = max(data(:,i));           % max
        result(i,5) = min(data(:,i));           % min
        result(i,6) = median(data(:,i));        % median
    end
end

result = round(result,precision);

vnames = {'rms','std','mean','max','min','median'};
result = array2table(result,'VariableNames',vnames);

end


在这里插入图片描述

3. 画图函数

function setting_figure()
% Drawing Parameter Settings
    grid on;
    set(gca,'ygrid','on','gridlinestyle','--','Gridalpha',0.5,'linewidth',2);
    set(gcf,'color','w');
    set(gca,'Fontsize',25);
    print(gcf,'-clipboard','-dbitmap');
end

4. 存储kml数据

function save_file_kml(data,file_path)
% Description: save kml file
% Input: data = [time latitude(deg) longitude(deg)];
%        file_path : save kml file name and path

vname = {'time','latitude','longitude'};
data = array2table(data,'VariableNames',vname);
lat = data.latitude;
lon = data.longitude;

kmlname = fullfile(file_path);
kmlname_line = strcat(kmlname,'_line.kml');
kmlname_point = strcat(kmlname,'_point.kml');

kmlwriteline(kmlname_line,lat,lon);
kmlwritepoint(kmlname_point,lat,lon);

end

5. 存储CSV文件

function save_csv(A, path)
% Description: save data
% Input : A: save data
%         path: save path
[row, col] = size(A);
fid = fopen(path, 'w');

for i=1:row
    for j=1:col-1
        fprintf(fid, '%.9f,', A(i,j));
    end
    fprintf(fid, '%.9f\r\n', A(i,col));
end
fclose(fid);

end



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值