how to plot a mean line in a plot
10 次查看(过去 30 天)
显示 更早的评论
Hello everyone!
Could you please help me with a plot. When I plot a mean v, it plots differently as 0. I need to mean line to be at the same angle as my fluctuations.
My code is:
clear all; close all;
N=100;
t = (0:N);
t1=(0:N-1);
t2=(0:N-1);
tt = rand(1,N) * 2 * pi;
ang = rand(1,N) * 2 * pi;
amp_u = 2;
amp_v = 1;
amp_w = 0.5;
u_mean=2;
v_mean=1;
w_mean=1;
u1 = amp_u.*sin(100*t2)+u_mean;
v1 = sin(ang) .* amp_v+v_mean;
w1=sin(ang) .* amp_w+w_mean;
u = cumsum([2, u1]);
x(1:N)=mean(u1);
v = cumsum([2, v1]);
w = cumsum([2, w1]);
figure(1); plot(t,u);
hold on
plot(t1,x);
1 个评论
Dyuman Joshi
2023-2-27
Mean will be a scalar, constant value and it plots accordingly as well.
"When I plot a mean v ..."
You are not plotting v in your code above.
"I need to mean line to be at the same angle as my fluctuations."
Can you explain what do you mean by this? Perhaps a figure will be more helpful.
采纳的回答
Star Strider
2023-2-27
‘I need to mean line to be at the same angle as my fluctuations.’
You apparently want the linear regression of ‘u1’ as a function of ‘t1’ not the mean of ‘u1’.
Try this —
% clear all; close all;
N=100;
t = (0:N);
t1=(0:N-1);
t2=(0:N-1);
tt = rand(1,N) * 2 * pi;
ang = rand(1,N) * 2 * pi;
amp_u = 2;
amp_v = 1;
amp_w = 0.5;
u_mean=2;
v_mean=1;
w_mean=1;
u1 = amp_u.*sin(100*t2)+u_mean;
v1 = sin(ang) .* amp_v+v_mean;
w1=sin(ang) .* amp_w+w_mean;
u = cumsum([2 u1]);
% x(1:N)=mean(u1);
B = [t(:) ones(size(t(:)))] \ u(:); % Linear Regression Parameters
x = [t2(1) 1; t2(end) 1] * B; % Linear Regression Evaluation
v = cumsum([2, v1]);
w = cumsum([2, w1]);
figure(1)
plot(t,u)
hold on
plot(t1([1 end]),x)
ylim([0 max(ylim)])
While I am thinking about it, do you have any thoughts on my Answer to plot a graph from user input?
.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!