Matlab中线性拟合数据斜率百分比的计算

Matlab中线性拟合数据斜率百分比的计算,matlab,Matlab,我希望有人能帮助我 假设我有以下两个向量 t = [1 2 3 4 5]; m = [10 8 6 4 2]; plot(t,m) 我想找到线性拟合的斜率(1度) 所以我写: polyfit(t,m,1) 然后我得到以下答案: ans= 这意味着y=-2x+12 如何将系数重新计算为百分比斜率 我对此感兴趣的原因是,我想丢弃所有斜率80&&g

我希望有人能帮助我

假设我有以下两个向量

t =  [1 2 3 4 5];
m = [10 8 6 4 2];
plot(t,m)
我想找到线性拟合的斜率(1度)

所以我写:

polyfit(t,m,1)
然后我得到以下答案: ans=

这意味着
y=-2x+12

如何将系数重新计算为百分比斜率


我对此感兴趣的原因是,我想丢弃所有斜率<80%的数据(并继续处理斜率系数介于80%和100%之间的数据)。

假设您使用,
100*dy/dx
的#2中给出的公式定义百分比斜率,那么百分比斜率就是
x^1
的系数,乘以100。您可以进行测试,检查坡度是否小于80%,如下所示:

t =  [1 2 3 4 5];
m = [10 8 6 4 2];
p = polyfit(t,m,1);
g = p(1) * 100;
if g > 80 && g < 100
    % Do what you need to do...
end
t=[12345];
m=[10 8 6 4 2];
p=多配合(t,m,1);
g=p(1)*100;
如果g>80&&g<100
%做你需要做的事。。。
结束

坡度百分比是什么意思?是从这个:?因为这个百分比是从0到无穷大的……是的,当我说百分比斜率时,我的意思是,如#2所示:en.wikipedia.org/wiki/Grade#28slope%29#术语。它说这个百分比可以用倾角的正切乘以100来表示。所以:t=[12345];m=[10 8 6 4 2];p=多配合(t,m,1);斜率=p(1);角度=A和(坡度);百分比斜率=100*tan(角度)。在本例中,该百分比斜率为68.8691%。如果我只说p(1)*100,那么我得到了200%,如果你看这个数字,我真的认为这没有意义?感谢you@user3151758. 本节根本没有提到切线或角度。百分比表示为100*上升/运行,或仅为100*直线坡度。坡度为200%表示坡度为2。请记住,公式
tan(atand(x))
几乎没有意义,因为
atand
以度为单位返回某个值,而
tan
以弧度为单位获取参数。请注意,您的数据的斜率为
-8/4=-2
,并且
tan(atan(x))
只返回
x
到符号差。@user3151758。你想得到一个像
100*abs(atand(p(1))/90这样的百分比吗?这将是坡度绝对值的角度百分比。
t =  [1 2 3 4 5];
m = [10 8 6 4 2];
p = polyfit(t,m,1);
g = p(1) * 100;
if g > 80 && g < 100
    % Do what you need to do...
end