2 ethan  wong Ethan__Wong 于 2014.08.21 09:41 提问

matlab拟合出错,求大神

直接上代码
A=xlsread('E:\matlabspace\yuanzhu','sheet2','a1261:c2521');
x=A(:,1);
y=A(:,2);
z=A(:,3);
data=[x(:),y(:),z(:)];

f=@(p,data)(data(:,1)-p(1)).^2+(data(:,2)-p(2)).^2+(data(:,3)-p(3)).^2-p(4)^2;
p=nlinfit(data,zeros(size(data,1),1),f,[0 0 0 1]')%拟合的参数

plot3(data(:,1),data(:,2),data(:,3),'o')
[X,Y,Z]=meshgrid(linspace(-14,14));
V=(X-p(1)).^2+(Y-p(2)).^2+(Z-p(3)).^2-p(4)^2;
isosurface(X,Y,Z,V,0);
alpha .5;camlight;axis equal;grid on;view(3);
title(sprintf('(x-%f)^2+(y-%f)^2+(z-%f)^2=%f',p(1),p(2),p(3),p(4)^2))

错误提示:
??? Error using ==> nlinfit at 120
Error evaluating model function '@(p,data)data(:,1)^2.*p(1)+data(:,2)^2.*p(2)+data(:,3)^2.*p(3)-1'.

Error in ==> Untitled at 10
p=nlinfit(data,zeros(size(data,1),1),f,[1 1 1])%拟合的参数

Caused by:
Error using ==> mpower
Inputs must be a scalar and a square matrix.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MATLAB拟合
1 曲线拟合实例:温度曲线问题 气象部门观测到一天某些时刻的温度变化数据为: t 0 1 2 3 4 5 6 7 8 9 10 T 13 15 17 14 16 19 26 24 26 27 29 试描绘出温度变化曲线。曲线拟合就是计算出两组数据之间的一种函数关系,由此可描绘其变化曲线及估计非采集数据对应
MATLAB 线性拟合 决定系数R2求解
线性拟合之后总是需要求解决定系数R2,网上找了一下发现没啥靠谱的中文回答。还是老外的方法比较靠谱。 线性拟合求解决定系数
【matlab】用matlab的线性回归和线性拟合求出两者的关系函数
t=[1999 2000 2001 2002 2003 2004 2005 2006 2007 2008] c=[399.72 506.97 754.98 989.4 1202.48 1473.29 1525 1717.87 1911.45 2004.25] 求t表达c. figure; t=[1999 2000 2001 2002 2003 20
拟合圆并求圆心(matlab)
拟合圆并求圆心(matlab)
一个示例:拟合和求导的的MATLAB实现
v_x=[1:2048]; v_y=[204.00 211.00 207.00 212.00 207.00 199.00 204.00 202.00 211.00 204.00 210.00 207.00 203.00 211.00 211.00 215.00 216.00 210.00 215.00 211.00 211.00 211.00 215.00 215.00 211.00 211.0
用MATLAB求解拟合公式系数和拟合优度
使用Matlab编写拟合计算函数类,程序代码如下: 注:          非线性拟合函数Lsqcurvefit(f,a,x,y)参数介绍:          f:符号函数句柄。 a:系数预估的值(预拟合的未知参数的估计值)。 x:我们已经获知的x的值。 y:我们已经获知的x对应的y的值。   function[s,resnorm]=formular1(x,y) a=[0 0
圆拟合matlab程序,以及圆心 半径的确定
圆拟合matlab代码 可以确定圆心、半径
n条直线交点拟合求交点
直线方程的公式有以下几种形式: 斜截式:y=kx+b 截距式:x/a+y/b=1 两点式:(x-x1)/(x2-x1)=(y-y1)/(y2-y1) 一般式:ax+by+c=0(可以表达任意直线) 只要知道两点坐标,代入任何一种公式,都可以求出直线的方程 一般式方程在计算机领域的重要性 常用的直线方程有一般式 点斜式 截距式 斜截式 两点式等等。除了一般式方程,它们要么不能支持所有情况下
Matlab物化实验——已知函数表达式用最小二乘法拟合
0 71.18 0.06 47.00384303 0.1 37.62875959 0.15 33.90441137 0.2 29.05633739 0.25 26.87309878 0.3 24.52932792 0.5 20.96551195 0.7 15.18635092 function [fitresult, gof] = createFit(VarName3, VarN
最小二乘法(c语言实现线性,matlab进行拟合)及相关系数的求解
现在给定n个点,(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)..(xn,yn).现在希望得到一条最好的曲线(也就是求一个函数关系式~~)能尽可能的描述这n个点(不一定所有点都经过,但是总的拟合最小) 现在探讨什么叫总的拟合误差最小: 为了方便,我们考虑最简单的线性模型。  1, n ∑(yi-f(xi))  i=1 但是考虑到有些点在线