资源简介

雨流计数法 的各种matlab程序

资源截图

代码片段和文件信息

/*  RAINFLOW $ Revision: 1.1 $ */
/*  by Adam Nieslony 2009     */

#include 
#include “mex.h“

/* ++++++++++ BEGIN RF3 [ampl ampl_mean nr_of_cycle] */
/* ++++++++++ Rain flow without time analysis */
void
rf3(mxArray *array_ext mxArray *hs[]) {
    double *pr *po a[16384] ampl mean;
    int tot_num index j cNr;
    mxArray *array_out;
    
    tot_num = mxGetM(array_ext) * mxGetN(array_ext);
    pr = (double *)mxGetPr(array_ext);
    
    array_out = mxCreateDoubleMatrix(3 tot_num-1 mxREAL);
    po = (double *)mxGetPr(array_out);
    
    j = -1;
    cNr = 1;
    for (index=0; index        a[++j]=*pr++;
        while ( (j >= 2) && (fabs(a[j-1]-a[j-2]) <= fabs(a[j]-a[j-1])) ) {
            ampl=fabs( (a[j-1]-a[j-2])/2 );
            switch(j)
{
                case 0: { break; }
                case 1: { break; }
                case 2: {
                    mean=(a[0]+a[1])/2;
                    a[0]=a[1];
                    a[1]=a[2];
                    j=1;
                    if (ampl > 0) {
                        *po++=ampl;
                        *po++=mean;
                        *po++=0.50;
                    }
                    break;
                }
                default: {
                    mean=(a[j-1]+a[j-2])/2;
                    a[j-2]=a[j];
                    j=j-2;
                    if (ampl > 0) {
                        *po++=ampl;
                        *po++=mean;
                        *po++=1.00;
                        cNr++;
                    }
                    break;
                }
            }
        }
    }
    for (index=0; index        ampl=fabs(a[index]-a[index+1])/2;
        mean=(a[index]+a[index+1])/2;
        if (ampl > 0){
            *po++=ampl;
            *po++=mean;
            *po++=0.50;
        }
    }
  /* you can free the allocated memeory */
  /* for array_out data                 */
    mxSetN(array_out tot_num - cNr);
    hs[0]=array_out;
}
/* ++++++++++ END RF3 */

/* ++++++++++ BEGIN RF5 [ampl ampl_mean nr_of_cycle cycle_begin_time cycle_period_time]*/
/* ++++++++++ Rain flow with time analysis */
void
rf5(mxArray *array_ext mxArray *array_t mxArray *hs[]) {
    double *pr *pt *po a[16384] t[16384] ampl mean period atime;
    int tot_num index j cNr;
    mxArray *array_out;
    
    tot_num = mxGetM(array_ext) * mxGetN(array_ext);
    pr = (double *)mxGetPr(array_ext);
    pt = (double *)mxGetPr(array_t);
    
    array_out = mxCreateDoubleMatrix(5 tot_num-1 mxREAL);
    po = (double *)mxGetPr(array_out);
    
    j = -1;
    cNr = 1;
    for (index=0; index        a[++j]=*pr++;
        t[j]=*pt++;
        while ( (j >= 2) && (fabs(a[j-1]-a[j-2]) <= fabs(a[j]-a[j-1])) ) {
            ampl=fabs( (a[j-1]-a[j-2])/2 );
            switch(j)
{
                case 0: { break; }
       

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       34694  2010-04-03 18:44  index.html
     文件        6565  2009-11-10 21:49  rainflow.c
     文件         926  2003-10-24 18:00  rainflow.m
     文件        9216  2009-11-10 22:00  rainflow.mexw32
     文件       11264  2010-03-17 18:20  rainflow.mexw64
     文件        2663  2009-11-11 21:17  rfdemo1.m
     文件         896  2005-01-12 19:13  rfdemo2.m
     文件        2017  2009-11-11 03:43  rfhist.m
     文件        3227  2009-11-10 22:46  rfmatrix.m
     文件       17849  2003-10-24 18:21  rfmatrix.png
     文件        3162  2009-11-11 03:41  sig2ext.m
     文件        1314  2014-02-12 13:06  license.txt

评论

共有 条评论