有关matlab画直线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关matlab画直线相关的知识,希望对你有一定的参考价值。
x=[1:5];
y=[2,4,5,7,9];
怎样用matlab拟和成直线
谢谢
clc;clear
x=1:5;
y=[2 4 5 7 9];
%【1】非线性回归方法
fun=inline('a(1)*x+a(2)','a','x')%规定方程类型
a=nlinfit(x,y,fun,[1 1])%a就是回归系数
x1=x(1):0.05:x(end);%x的间隔更小些
y1=a(1)*x1+a(2);%代入回归方程
plot(x,y,'o',x1,y1)%绘图
%【2】线性回归方法
x2=x(1):0.05:x(end);
pp=polyfit(x,y,1)%pp为回归系数
y2=polyval(pp,x2);%代入回归方程
figure%再画一个图
plot(x,y,'*',x2,y2)
y=poly2sym(pp,'x')%转化为代数方程形式
运行结果:
a =
1.7000
0.3000
pp =
1.7000 0.3000
y =1.7*x+0.3 参考技术A >> x=[1:5];
>> y=[2,4,5,7,9];
>> a= polyfit(x,y,1);
>> b = polyval(a,x);
>> plot(x,y,'*',x,b)
第三行的 polyfit中的1表示用一次多项式拟合,也就是直线了
第四行的 b表示拟合的多项式的每一个系数
polyval用来求拟合后的多项式在x处的值
第五行的 开始作图了,前面三个参数把要拟合的点画出来
后面的两个参数在画拟合后的线
如何在matlab中的水平线上画一条垂直线?
【中文标题】如何在matlab中的水平线上画一条垂直线?【英文标题】:How can I draw a vertical line upon the horizontal lines in matlab? 【发布时间】:2017-05-23 05:01:41 【问题描述】:我想在Matlab中在并发的水平线上画一条垂直线,并显示垂直线与水平线相交的坐标。我在这里给出一个图,我想写一个代码,让它先画一条线,然后自动显示交点坐标。
【问题讨论】:
请提及您目前所拥有的。水平线的方程?你想在哪里画垂直线?存在无数种解决方案。 【参考方案1】:L1 = [0.7290 0.2163
0.2026 0.9763] ; % line 1 coordinates
L2 = [0.5932 0.9677
0.3044 0.8960] ; % line 2 coordinates
figure(1)
hold on
plot(L1(1,:),L1(2,:),'r')
plot(L2(1,:),L2(2,:),'b')
%% Get intersection
P = InterX(L1,L2) ;
%
plot(P(1),P(2),'*r')
%% Show points
text(P(1),P(2),num2str(P)) ;
从链接下载函数InterX: https://in.mathworks.com/matlabcentral/fileexchange/22441-curve-intersections?focused=5165138&tab=function
【讨论】:
感谢您的回答。但我想在一张图像上做,它有一些并发的水平线。 是的..可以做到..你有那些水平线的坐标吗? 兄弟,我在应用霍夫变换后得到了这些行。那么我可以从霍夫变换中得到它吗?基本上,现在我想应用一种算法,使垂直线从左向右流动,并在与图像水平线相交时标记交点。如果它显示交点上的坐标,这对我来说也很好。以上是关于有关matlab画直线的主要内容,如果未能解决你的问题,请参考以下文章