Find mean of steps in broken signal

2 ビュー (過去 30 日間)
Konvictus177
Konvictus177 2023 年 8 月 14 日
コメント済み: Star Strider 2023 年 8 月 16 日
Hi,
I have a partially broken signal with NaNs and 5 steps as indicated below.
How can I find the mean level of each of the 5 steps?
The signal is attached.
The signal looks like the following:
Thanks.

採用された回答

Star Strider
Star Strider 2023 年 8 月 14 日
One approach —
LD = load('y.mat');
y = LD.y;
x = 0:numel(y)-1;
Lv = islocalmax(y>25, 'FlatSelection','all');
start = strfind(Lv, [0 1]);
stop = strfind(Lv, [1 0]);
for k = 1:numel(start)
ymean(k,:) = mean(y(start(k) : stop(k)), 'omitnan');
xmean(k,:) = mean(x(start(k) : stop(k)), 'omitnan');
end
Flat_Means = table(xmean, ymean, 'VariableNames',{'X Centre','Y Mean'})
Flat_Means = 9×2 table
X Centre Y Mean ________ ______ 1618 28.811 1651 30.648 1691 26.499 1725 28.549 1789 35.506 1828 33.727 1841 33.103 1876 33.305 1939 39.992
figure
plot(x, y)
hold on
plot(x(Lv), y(Lv), '.r')
hold off
grid
ylim([min(ylim) 70])
text(xmean, ymean, compose('\\mu = %.2f \\rightarrow',ymean), 'Horiz','right', 'Vert','middle', 'Rotation',-80)
.
  4 件のコメント
Konvictus177
Konvictus177 2023 年 8 月 16 日
@Star Strider The updated code works perfect! Thank you very much!
Star Strider
Star Strider 2023 年 8 月 16 日
As always, my pleasure!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by