Find min values in sequence time series

1 回表示 (過去 30 日間)
dau
dau 2018 年 10 月 30 日
コメント済み: dau 2018 年 10 月 31 日
Dear all I like to ask your help for this Matlab function to find mean value of a sequence dataset as demonstrated in Figure below.
Column 5 is min of a range values in column 3 based on column 4 (with fd =1).
Thank you very much

採用された回答

KSSV
KSSV 2018 年 10 月 31 日
As the data is not given, I have created some random data...check the code:
v = [1 2 3 0 0 0 0 0 2 3 4 0 0 0 0 0 4 5 6 7 0 0 0 0 1 1 1]';
A = rand(27,4) ;
A(:,4) = v ;
w = [false; v~=0 ;false];
starts = find(w(2:end) & ~w(1:end-1)); %Get starts of runs of non-zeros
ends = find(~w(2:end) & w(1:end-1))-1; % Get ends of runs of non-zeros
result = arrayfun(@(s,e) A(s:e,1:3), starts, ends, 'uniformout', false); % extract the respective parts
iwant = cellfun(@mean,result,'uniformout',false)
  2 件のコメント
dau
dau 2018 年 10 月 31 日
編集済み: dau 2018 年 10 月 31 日
Thank you very much for your code. It worked for me now. Again. thank you so much for your kind helps
dau
dau 2018 年 10 月 31 日
Can i ask one more thing, since i want to get min value then i change your expression to:
iwant = cellfun(@min,result,'uniformout',false)
I next step want to divide the iwant to the first column with the same value such as: In the first sequence, the min value equaled -187.1, then next result1 = -187.1 / 421.9 (in the first column). This will repeat to the next sequences, ex: result2 = -596.3 /824.5
Thank you

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by