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;figuresubplot(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 datahold on;plot(t, line1, 'r-', 'LineWidth', 2); % Plot lineplot(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 linelegend('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 datahold on;plot(t, line1, 'r-', 'LineWidth', 2); % Plot lineplot(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
Best Answer