LOAD2UD Calculates the number of up/downcrossings of a load. CALL: [Nup,Ndown,u] = udcross([a b n],L); where Nup = the number of upcrossings of level u_i, Ndown = the number of downcrossings of level u_i, u = a one column matrix with levels u_i, a,b = limits for u, a <= u_i <= b, n = the number of levels u_i, L = a two column matrix with times in the first column and load values in the second. Note that the parameter matrix can be used as input.
Calculates discrete levels given the parameter matrix. |
001 function [Nup,Ndown,u] = load2ud(param,L) 002 % LOAD2UD Calculates the number of up/downcrossings of a load. 003 % 004 % CALL: [Nup,Ndown,u] = udcross([a b n],L); 005 % 006 % where 007 % 008 % Nup = the number of upcrossings of level u_i, 009 % Ndown = the number of downcrossings of level u_i, 010 % u = a one column matrix with levels u_i, 011 % a,b = limits for u, a <= u_i <= b, 012 % n = the number of levels u_i, 013 % L = a two column matrix with times in the first column and 014 % load values in the second. 015 % 016 % Note that the parameter matrix can be used as input. 017 018 a=param(1); b=param(2); n=param(3); 019 020 if a>b, disp(' a>b, program will terminate.'), end 021 if n<1, disp(' n<1, program will terminate.'), end 022 023 if n == 1 024 u = a; 025 else 026 u=levels(param); 027 end 028 029 Nup=zeros(1,n); 030 Ndown=zeros(1,n); 031 032 N = size(L,1); 033 034 for i = 1:n 035 index = (L(1:N-1,2)<u(i)) & (L(2:N,2)>u(i)); 036 Nup(i) = sum(index); 037 038 index = (L(1:N-1,2)>u(i)) & (L(2:N,2)<u(i)); 039 Ndown(i) = sum(index); 040 end 041
Comments or corrections to the WAFO group