目录

一、函数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','*')

MATLAB绘制relu函数 matlab refline_MATLAB绘制relu函数

在散点图上叠加一条最小二乘线

refline

MATLAB绘制relu函数 matlab refline_最小二乘_02

在散点图的均值处添加一条参考线

mu = mean(y);
hline = refline([0 mu]);
hline.Color = 'r';

MATLAB绘制relu函数 matlab refline_matlab_03

红线是数据均值处的参考线。

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)

MATLAB绘制relu函数 matlab refline_最小二乘_04

在顶部绘图上叠加一条最小二乘线,在底部绘图上 y2 值的均值处叠加一条参考线。

lsline(ax1) % This is equivalent to refline(ax1)

mu = mean(y2);
refline(ax2,[0 mu])

MATLAB绘制relu函数 matlab refline_参考线_05

二、函数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';

MATLAB绘制relu函数 matlab refline_参考线_06

还添加拟合的均值函数

q = polyfit(t,y,3);
refcurve(q)
legend('Data','Population Mean','Fitted Mean',...
       'Location','NW')

MATLAB绘制relu函数 matlab refline_参考线_07

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')

MATLAB绘制relu函数 matlab refline_MATLAB绘制relu函数_08