24小时热门版块排行榜    

查看: 1921  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ww汪红

新虫 (小有名气)

[求助] F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4) 已有3人参与

F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4)
这个公式是把离散点拟合成椭圆的一个公式。有哪位同学能给我讲一下这个公式是怎么来的,我不太理解。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

引用回帖:
4楼: Originally posted by getengqing at 2015-12-24 09:00:25
那怎么和上述输入t一样输入呢?...

按楼主的最早的描述方程

matlab输入应该是

%匿名函数
F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4);
%输入椭圆系数
p = [p1,p2,p3,p4];%请将用实际的数代换p1等
%输入采集到的数据
X = [x11,x12; x21,x22;x31,x32.....];%用采集到的数据代换
%求解F
ans = F(p,X);
%此时求解的 ans是个列向量,每个元素是采集到的点与对应P中系数椭圆方程
%的偏差,这个ans单个元素都趋近与0时,这组系数p就是你要拟合的椭圆方程系数
老古董
6楼2015-12-24 10:27:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
这应该不是拟合椭圆的公式吧,

这是个匿名函数啊

matlab中的函数写法
可以有三种方法创建:

  (1)inline函数:
  f=inline('3*x+1','x')

  可以得到:f=
  Inline function :
  f(x)=3*x+1

  输入t=0:3;
  f(t)

  ans =
  1 4 7 10

  (2)匿名函数:
  f=@(x)3*x+1

  可以得到:f=
  @(x)3*x+1

  输入t=0:3;
  f(t)

  ans =
  1 4 7 10

  (3)创建M-函数
  新建m文件,输入:
  function f=equation(x)
  f=3*x+1;

  保存m文件到工作文件夹;

  调用:
  输入t=0:3;
  f=equation(t)

  ans =
  1 4 7 10

你这个属于第二种,是个匿名函数
输入p和x就能出对应函数值,不过x的格式是个椭圆

p 输入4个系数
x的第一列是当作X,x的第二列当作Y

方程就是 P1*X^2 + P2 *X*Y + P3*Y ^2 + P4

这个函数描述的是 这个东西
老古董
2楼2015-12-24 08:43:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guo_zy_123

木虫 (正式写手)

【答案】应助回帖

当然你认为是拟合椭圆也行

反正就是看F 和 0的大小关系呗,如果是这个椭圆上的点, F的值会很接近0

通过对这个式子,调整4个系数P,让F每一项都趋近于0 就接近 椭圆了
老古董
3楼2015-12-24 08:47:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

getengqing

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
2楼: Originally posted by guo_zy_123 at 2015-12-24 08:43:49
这应该不是拟合椭圆的公式吧,

这是个匿名函数啊

matlab中的函数写法
可以有三种方法创建:

  (1)inline函数:
  f=inline('3*x+1','x')

  可以得到:f=
  Inline function :
  f(x)=3 ...

那怎么和上述输入t一样输入呢?
一起交流学习/分享优秀资源
4楼2015-12-24 09:00:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见