Replace with another curve ??

6 ビュー (過去 30 日間)
Kang Min Kim
Kang Min Kim 2019 年 12 月 31 日
回答済み: Csaba 2019 年 12 月 31 日
clc; % Clear the command window.
clear all; % Including global variables.
close all force; % Close all figures (except those of imtool.)
workspace; % Make sure the workspace panel is showing.
filebrowser;
format short g;
format compact;
fontSize = 14;
t = 0:300;
dailyFluct = gallery('normaldata',size(t),2);
sdata = cumsum(dailyFluct) + 20 + t/100;
figure
subplot(1, 3, 1);
plot(t, sdata, 'b-', 'LineWidth', 2); % Plot original y data
% legend('Original Data','Location','northwest');
grid on;
xlabel('Time (days)');
ylabel('data');
title('Original data', 'FontSize', fontSize);
coefficients = polyfit(t, sdata, 1); % Fit a line.
% Get the line at locations where you have x2.
line1 = polyval(coefficients, t);
hold on;
plot(t, line1, 'r-', 'LineWidth', 2); % Plot line
legend('original y', 'Line through y');
% Find the max of curve 1.
y1min = sdata(1);
% Make the upside down data.
y2 = -sdata;
subplot(1, 3, 2);
plot(t, sdata, 'b-', 'LineWidth', 2); % Plot original y data
hold on;
plot(t, line1, 'r-', 'LineWidth', 2); % Plot line
plot(t, y2, 'c-', 'LineWidth', 2); % Plot upside down (negative) data
grid on;
title('Upside down data', 'FontSize', fontSize);
% Shift y2 upwards so that the first points start at the same y location.
y2 = y2 + 2 * y1min;
plot(t, y2, 'm-', 'LineWidth', 2); % Plot line
legend('original y', 'Line through y', 'Negative y', 'Negative y shifted upwards');
% Make output curve (curve 3)
y3 = 2 * line1 + y2 - 2 *y1min; % Tilt curve 2 upwards at the slant of curve 1
subplot(1, 3, 3);
plot(t, sdata, 'b-', 'LineWidth', 2); % Plot original y data
hold on;
plot(t, line1, 'r-', 'LineWidth', 2); % Plot line
plot(t, y3, 'm-', 'LineWidth', 2);
grid on;
title('Both original and Upside down data', 'FontSize', fontSize);
legend('original y', 'Line through y', 'y3, tilted upwards');
I want to replace line through y with the moving average(30days) of original y.
thank you

採用された回答

Csaba
Csaba 2019 年 12 月 31 日
plot(t,sdata,'o',t,movmean(sdata,30),'-');
Csaba

その他の回答 (0 件)

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by