顶锅盖文问题[弱] CalculateCurveParameter(&dx,&dy,M,N,A) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢楼上大侠,但是还有错误,请再帮忙看看,谢谢!float A[2]; CalculateCurveParameter(&dx,&dy,M,N,A);//还是出现错误 cout<<A;error C2664: 'CalculateCurveParameter' : cannot convert parameter 5 from 'float [2]' to 'class CArray<double,double> *' 得到一个师兄的帮助,已经能用了,开心,发上来://#include <afxtempl.h>#include<iostream.h>#include<fstream.h>//最小二乘法曲线拟合 void CalculateCurveParameter(double X[],double Y[],long M,long N,double A[]){ //X,Y -- X,Y两轴的坐标 //M -- 结果变量组数 //N -- 采样数目 //A -- 结果参数 long i,j,k; double Z,D1,D2,C,P,G,Q; double *B; double *T; double *S; B=new double(N); T=new double(N); S=new double(N); if(M>N) { M=N; } for(i=0;i<M;i++) { A[i]=0; } Z=0; B[0]=1; D1=N; P=0; C=0; for(i=0;i<N;i++) { P=P+X[i]-Z; C=C+Y[i]; } C=C/D1; P=P/D1; A[0]=C*B[0]; if(M>1) { T[1]=1; T[0]=-P; D2=0; C=0; G=0; for(i=0;i<N;i++) { Q=X[i]-Z-P; D2=D2+Q*Q; C=Y[i]*Q+C; G=(X[i]-Z)*Q*Q+G; } C=C/D2; P=G/D2; Q=D2/D1; D1=D2; A[1]=C*T[1]; A[0]=C*T[0]+A[0]; } for(j=2;j<M;j++) { S[j]=T[j-1]; S[j-1]=-P*T[j-1]+T[j-2]; if(j>=3) { for(k=j-2;k>=1;k--) { S[k]=-P*T[k]+T[k-1]-Q*B[k]; } } S[0]=-P*T[0]-Q*B[0]; D2=0; C=0; G=0; for(i=0;i<N;i++) { Q=S[j]; for(k=j-1;k>=0;k--) Q=Q*(X[i]-Z)+S[k]; D2=D2+Q*Q; C=Y[i]*Q+C; G=(X[i]-Z)*Q*Q+G; } C=C/D2; P=G/D2; Q=D2/D1; D1=D2; A[j]=C*S[j]; T[j]=S[j]; for(k=j-1;k>=0;k--) { A[k]=C*S[k]+A[k]; B[k]=T[k]; T[k]=S[k]; } }// return TRUE;}void main(){ int i; double *a; double *b; long M=3; long N=3; a=new double[M]; b=new double[N]; //************输入数据***************// ifstream infp; infp.open ("input.txt",ios::in); //检查文件是否存在 if (!infp) { cout<<"That file does not exist\n"; } for(i=0;i<N;i++) { infp>>a[i]; //读入起始节点编号 } for(i=0;i<N;i++) { infp>>b[i]; //读入终止节点编号 } infp.close(); double *A; A=new double[3]; CalculateCurveParameter(a,b,M,N,A); for(int tt=0;tt<3;tt++) { cout<<A[tt]<<endl; } ofstream outfp; outfp.open ("output.txt",ios::out); outfp<<" 双曲线拟合系数计算结果:\n "; for(int t=0;t<3;t++) { outfp<<"系数A["<<t<<"]="<<A[t]<<endl; } outfp<<"方程组Y="<<A[0]<<"*X2+"<<A[1]<<"*X+"<<A[2]<<endl; outfp.close(); } 拟合的方面很多吧:Nurbs、B样条、贝塞尔和波浪线一般网上都有例子 HTTP协议奇怪现象,求大神解释 word * -->wstring 的问题 麻烦有时间的帮帮忙 共享mfc规则dll的内存泄漏 高手请进 CArchive类 串行化问题 急!!! 高手来帮忙!!高精度模拟键盘事件???? 如何提高VS2010编译的非托管C++应用程序的运行速度 如何在VC++中输入对数函数式子 关于菜单问题!!!!!! 简单得分!!CString类的问题?? 100分求助,请问在自己电脑上调试,串口波特率是不是不能设置为15200啊 函数名前面加上取地址符&和不加有什么区别呢?
CalculateCurveParameter(&dx,&dy,M,N,A);//还是出现错误
cout<<A;error C2664: 'CalculateCurveParameter' : cannot convert parameter 5 from 'float [2]' to 'class CArray<double,double> *'
#include<fstream.h>//最小二乘法曲线拟合
void CalculateCurveParameter(double X[],double Y[],long M,long N,double A[])
{
//X,Y -- X,Y两轴的坐标
//M -- 结果变量组数
//N -- 采样数目
//A -- 结果参数 long i,j,k;
double Z,D1,D2,C,P,G,Q;
double *B;
double *T;
double *S; B=new double(N);
T=new double(N);
S=new double(N); if(M>N)
{
M=N;
}
for(i=0;i<M;i++)
{
A[i]=0;
}
Z=0;
B[0]=1;
D1=N;
P=0;
C=0;
for(i=0;i<N;i++)
{
P=P+X[i]-Z;
C=C+Y[i];
}
C=C/D1;
P=P/D1;
A[0]=C*B[0];
if(M>1)
{
T[1]=1;
T[0]=-P;
D2=0;
C=0;
G=0;
for(i=0;i<N;i++)
{
Q=X[i]-Z-P;
D2=D2+Q*Q;
C=Y[i]*Q+C;
G=(X[i]-Z)*Q*Q+G;
}
C=C/D2;
P=G/D2;
Q=D2/D1;
D1=D2;
A[1]=C*T[1];
A[0]=C*T[0]+A[0];
}
for(j=2;j<M;j++)
{
S[j]=T[j-1];
S[j-1]=-P*T[j-1]+T[j-2];
if(j>=3)
{
for(k=j-2;k>=1;k--)
{
S[k]=-P*T[k]+T[k-1]-Q*B[k];
}
}
S[0]=-P*T[0]-Q*B[0];
D2=0;
C=0;
G=0;
for(i=0;i<N;i++)
{
Q=S[j];
for(k=j-1;k>=0;k--)
Q=Q*(X[i]-Z)+S[k];
D2=D2+Q*Q;
C=Y[i]*Q+C;
G=(X[i]-Z)*Q*Q+G;
}
C=C/D2;
P=G/D2;
Q=D2/D1;
D1=D2;
A[j]=C*S[j];
T[j]=S[j];
for(k=j-1;k>=0;k--)
{
A[k]=C*S[k]+A[k];
B[k]=T[k];
T[k]=S[k];
}
}
// return TRUE;
}
void main()
{
int i;
double *a;
double *b;
long M=3;
long N=3;
a=new double[M];
b=new double[N]; //************输入数据***************//
ifstream infp;
infp.open ("input.txt",ios::in);
//检查文件是否存在
if (!infp)
{
cout<<"That file does not exist\n";
}
for(i=0;i<N;i++)
{
infp>>a[i]; //读入起始节点编号
}
for(i=0;i<N;i++)
{
infp>>b[i]; //读入终止节点编号
}
infp.close();
double *A;
A=new double[3]; CalculateCurveParameter(a,b,M,N,A);
for(int tt=0;tt<3;tt++)
{
cout<<A[tt]<<endl;
}
ofstream outfp;
outfp.open ("output.txt",ios::out);
outfp<<" 双曲线拟合系数计算结果:\n "; for(int t=0;t<3;t++)
{
outfp<<"系数A["<<t<<"]="<<A[t]<<endl;
} outfp<<"方程组Y="<<A[0]<<"*X2+"<<A[1]<<"*X+"<<A[2]<<endl;
outfp.close();
}
Nurbs、B样条、贝塞尔和波浪线
一般网上都有例子