目录
一、函数refline
1.功能
2.语法
3.示例
3.1在均值处添加参考线
3.2指定要添加最小二乘线和参考线的坐标区
二、函数refcurve
1.功能
2.语法
3.示例
3.1添加总体和拟合均值函数
3.2使用refcurve绘制棒球的轨迹
一、函数refline
1.功能
将参考线添加到绘图中
2.语法
refline(m,b)
在当前坐标区中添加一条具有斜率 m
和截距 b
refline(coeffs)
将由向量 coeffs
的元素定义的线添加到图窗中。没有输入参数的 refline
等效于 lsline。
refline(ax,___)
使用上述任一语法中的输入参数,向 ax
所指定坐标区中的图上添加一条参考线。
hline
使用上述任一语法中的输入参数,返回参考线对象 hline
。在创建参考线后,使用 hline
修改其属性。有关属性列表,请参阅 Line 属性
3.示例
3.1在均值处添加参考线
为自变量 x
和因变量 y
生成样本数据
% 为自变量 x 和因变量 y 生成样本数据。
x = 1:10;
y = x + randn(1,10);
%创建 x 和 y 的散点图。
scatter(x,y,25,'b','*')
在散点图上叠加一条最小二乘线
refline
在散点图的均值处添加一条参考线
mu = mean(y);
hline = refline([0 mu]);
hline.Color = 'r';
红线是数据均值处的参考线。
3.2指定要添加最小二乘线和参考线的坐标区
定义用于绘图的 x 变量和两个不同 y 变量。
将 ax1
定义为图窗的上半部分,ax2
定义为图窗的下半部分。
使用 y1
在顶部坐标区中创建第一个散点图,使用 y2
在底部坐标区中创建第二个散点图。
% 定义用于绘图的 x 变量和两个不同 y 变量。
rng default % For reproducibility
x = 1:10;
y1 = x + randn(1,10);
y2 = 2*x + randn(1,10);
%
figure
ax1 = subplot(2,1,1);
ax2 = subplot(2,1,2);
scatter(ax1,x,y1)
scatter(ax2,x,y2)
在顶部绘图上叠加一条最小二乘线,在底部绘图上 y2
值的均值处叠加一条参考线。
lsline(ax1) % This is equivalent to refline(ax1)
mu = mean(y2);
refline(ax2,[0 mu])
二、函数refcurve
1.功能
将参考曲线添加到绘图
2.语法
- refcurve(p)
将系数为p的多项式参考曲线添加到当前轴
- refcurve(ax,p)
使用在axes(一个Axes对象)中指定的绘图轴。 有关更多信息,请参见axes。
- hcurve = refcurve(...)
使用先前语法中的任何输入参数组合将句柄hcurve返回到曲线。
3.示例
3.1添加总体和拟合均值函数
% 生成具有多项式趋势的数据。
p = [1 -2 -1 0];
t = 0:0.1:3;
rng default % For reproducibility
y = polyval(p,t) + 0.5*randn(size(t));
% 绘制数据并使用refcurve添加总体均值函数。
plot(t,y,'ro')
h = refcurve(p);
h.Color = 'r';
还添加拟合的均值函数
q = polyfit(t,y,3);
refcurve(q)
legend('Data','Population Mean','Fitted Mean',...
'Location','NW')
3.2使用refcurve绘制棒球的轨迹
% 介绍相关的物理常数。
M = 0.145; % Mass (kg)
R = 0.0366; % Radius (m)
A = pi*R^2; % Area (m^2)
rho = 1.2; % Density of air (kg/m^3)
C = 0.5; % Drag coefficient
D = rho*C*A/2; % Drag proportional to the square of the speed
g = 9.8; % Acceleration due to gravity (m/s^2)
% 假设在每个时间间隔内都保持恒定的加速度,则用与速度的平方成比例的阻力来模拟轨迹。
dt = 1e-2; % Simulation time interval (s)
r0 = [0 1]; % Initial position (m)
s0 = 50; % Initial speed (m/s)
alpha0 = 35; % Initial angle (deg)
v0 = s0*[cosd(alpha0) sind(alpha0)]; % Initial velocity (m/s)
r = r0;
v = v0;
trajectory = r0;
while r(2) > 0
a = [0 -g] - (D/M)*norm(v)*v;
v = v + a*dt;
r = r + v*dt + (1/2)*a*(dt^2);
trajectory = [trajectory;r];
end
% 绘制轨迹并使用refcurve将无阻力的抛物线轨迹(通过分析找到)添加到轨迹图。
figure
plot(trajectory(:,1),trajectory(:,2),'m','LineWidth',2)
xlim([0,250])
h = refcurve([-g/(2*v0(1)^2),...
(g*r0(1)/v0(1)^2) + (v0(2)/v0(1)),...
(-g*r0(1)^2/(2*v0(1)^2)) - (v0(2)*r0(1)/v0(1)) + r0(2)]);
h.Color = 'c';
h.LineWidth = 2;
axis equal
ylim([0,50])
grid on
xlabel('Distance (m)')
ylabel('Height (m)')
title('{\bf Baseball Trajectories}')
legend('With Drag','Without Drag')