VS2010环境下编写C程序,提示缺少“)”、“{”等符号,是哪个地方出错了?我把代码贴出来,还望大神指导一下,多谢!

VS2010环境下编写C程序,提示缺少“)”、“{”等符号,是哪个地方出错了?我把代码贴出来,还望大神指导一下,多谢!
#define N 10 /Kalman滤波器追踪点数/

typedef struct Kalman_state
{
float x[2][1]; /状态矩阵/
float A[2][2]; /转移矩阵/
float H[2][2]; /测量矩阵/
float Q[2][2]; /系统噪声矩阵/
float P[2][2]; /协方差矩阵/
float K[2][2]; /Kalman增益/
float R[2][2]; /测量噪声矩阵/
};
void Kalman_init(Kalman_state *state)
{
//state->x = {900,0}
state->x[0][0] = 900;
state->x[1][0] = 0;
for(int i = 1; i < N-1; i++)
{
state->x[0][i] = 0;
state->x[1][i] = 0;
}
//state->P_last = {{30,0},{0,50}}
state->P[0][0] = 30;
state->P[0][1] = 0;
state->P[1][0] = 0;
state->P[1][1] = 50;
//state->A = {{1,0},{0,1}}
state->A[0][0] = 1;
state->A[0][1] = 0;
state->A[1][0] = 0;
state->A[1][1] = 1;
//state->H = {{1,0},{0,1}}
state->H[0][0] = 1;
state->H[0][1] = 0;
state->H[1][0] = 0;
state->H[1][1] = 1;
//state->Q = {{50,0},{0,13}}
state->Q[0][0] = 1;
state->Q[0][1] = 0;
state->Q[1][0] = 0;
state->Q[1][1] = 1;
//state->R = {{80,0},{0,0}}
state->R[0][0] = 80;
state->R[0][1] = 0;
state->R[1][0] = 0;
state->R[1][1] = 0;
}

float Kalman_filter(Kalman_state state, float s_measure)
{
float P_mid[2][2];
float temp_P[2][2];
float temp_HP[2][2];
float A_T[2][2];
float H_T[2][2];
float temp_PH_T[2][2];
float temp_RHPH_T[2][2];
float temp_RHPH_T_STAR[2][2];
float temp_RHPH_T_NI[2][2];
float temp_sHx[2][N];
float temp_KsHx[2][N];
float temp_IKH[2][2];
float s[2][N];
float m;
float v = 20;
for(int i = 0; i < N; i++)
{
s[0][i] = s_measure + v * i + rand()%100 + 1;
s[1][i] = 0;
}
for(int i = 0; i < N; i++)
{
/x(n|n-1) = Ax(k-1|k-1)
/
state->x[0][i] = state->A[0][0] * state->x[0][i] + state->A[0][1] * state->x[0][i];
state->x[1][i] = state->A[1][0] * state->x[0][i] + state->A[1][1] * state->x[0][i];

	/*P(n|n-1)=A*P(n-1|n-1)A^T+Q */
	//***A*P(n-1|n-1)
	temp_P[0][0] = state->A[0][0] * state->P[0][0] + state->A[0][1] * state->P[1][0];
	temp_P[0][1] = state->A[0][0] * state->P[0][1] + state->A[0][1] * state->P[1][1];
	temp_P[1][0] = state->A[1][0] * state->P[0][0] + state->A[1][1] * state->P[1][0];
	temp_P[1][1] = state->A[1][0] * state->P[0][1] + state->A[1][1] * state->P[1][1];
	//***A^T
	A_T[0][0] = state->A[0][0];
	A_T[0][1] = state->A[1][0];
	A_T[1][0] = state->A[0][1];
	A_T[1][1] = state->A[1][1];
	//***P(n|n-1)=A*P(n-1|n-1)A^T+Q
	state->P[0][0] = temp_P[0][0] * A_T[0][0] + temp_P[0][1] * A_T[1][0] + state->Q[0][0];
	state->P[0][1] = temp_P[0][0] * A_T[0][1] + temp_P[0][1] * A_T[1][1] + state->Q[0][1];
	state->P[1][0] = temp_P[1][0] * A_T[0][0] + temp_P[1][1] * A_T[1][0] + state->Q[1][0];
	state->P[1][1] = temp_P[1][0] * A_T[0][1] + temp_P[1][1] * A_T[1][1] + state->Q[1][1];

	/*K = P * H^T /[R + H * P * H^T] */
	//***H*P
	temp_HP[0][0] = state->H[0][0] * state->P[0][0] + state->H[0][1] * state->P[1][0];
	temp_HP[0][1] = state->H[0][0] * state->P[0][1] + state->H[0][1] * state->P[1][1];
	temp_HP[1][0] = state->H[1][0] * state->P[0][0] + state->H[1][1] * state->P[1][0];
	temp_HP[1][1] = state->H[1][0] * state->P[0][1] + state->H[1][1] * state->P[1][1];
	//***H^T
	H_T[0][0] = state->H[0][0];
	H_T[0][1] = state->H[1][0];
	H_T[1][0] = state->H[0][1];
	H_T[1][1] = state->H[1][1];
	//***R + H * P * H^T
	temp_RHPH_T[0][0] = state->R[0][0] + temp_HP[0][0] * H_T[0][0] + temp_HP[0][1] * H_T[1][0];
	temp_RHPH_T[0][1] = state->R[0][1] + temp_HP[0][0] * H_T[0][1] + temp_HP[0][1] * H_T[1][1];
	temp_RHPH_T[1][0] = state->R[1][0] + temp_HP[1][0] * H_T[0][0] + temp_HP[1][1] * H_T[1][0];
	temp_RHPH_T[1][1] = state->R[1][1] + temp_HP[1][0] * H_T[0][1] + temp_HP[1][1] * H_T[1][1];
	//***R + H * P * H^T的逆运算
	m = temp_RHPH_T[0][0] * temp_RHPH_T[1][1] - temp_RHPH_T[0][1] * temp_RHPH_T[1][0];
	temp_RHPH_T_STAR[0][0] = temp_RHPH_T[1][1];
	temp_RHPH_T_STAR[0][1] = temp_RHPH_T[1][0];
	temp_RHPH_T_STAR[1][0] = temp_RHPH_T[0][1];
	temp_RHPH_T_STAR[1][1] = temp_RHPH_T[0][0];
	temp_RHPH_T_NI[0][0] = temp_RHPH_T_STAR[0][0] / m;
	temp_RHPH_T_NI[0][1] = temp_RHPH_T_STAR[0][1] / m;
	temp_RHPH_T_NI[1][0] = temp_RHPH_T_STAR[1][0] / m;
	temp_RHPH_T_NI[1][1] = temp_RHPH_T_STAR[1][1] / m;
	//***P * H^T
	temp_PH_T[0][0] = state->P[0][0] * H_T[0][0] + state->P[0][1] * H_T[1][0];
	temp_PH_T[0][1] = state->P[0][0] * H_T[0][1] + state->P[0][1] * H_T[1][1];
	temp_PH_T[1][0] = state->P[1][0] * H_T[0][0] + state->P[1][1] * H_T[1][0];
	temp_PH_T[1][1] = state->P[1][0] * H_T[0][1] + state->P[1][1] * H_T[1][1];
	//***K = P * H^T /[R + H * P * H^T] 
	state->K[0][0] = temp_PH_T[0][0] * temp_RHPH_T_NI[0][0] + temp_PH_T[0][1] * temp_RHPH_T_NI[1][0];
	state->K[0][1] = temp_PH_T[0][0] * temp_RHPH_T_NI[0][1] + temp_PH_T[0][1] * temp_RHPH_T_NI[1][1];
	state->K[1][0] = temp_PH_T[1][0] * temp_RHPH_T_NI[0][0] + temp_PH_T[1][1] * temp_RHPH_T_NI[1][0];
	state->K[1][1] = temp_PH_T[1][0] * temp_RHPH_T_NI[0][1] + temp_PH_T[1][1] * temp_RHPH_T_NI[1][1];

	/*x(n|n) = x(n|n-1) + K(n) * [s - H(n)*x(n|n-1)] */
	//***s - H(n)*x(n|n-1)
	temp_sHx[0][i] = s[0][i] - (state->H[0][0] * state->x[0][i] + state->H[0][1] * state->x[1][i]);
	temp_sHx[1][i] = s[1][i] - (state->H[1][0] * state->x[0][i] + state->H[1][1] * state->x[1][i]);
	//***K(n) * [s - H(n)*x(n|n-1)]
	temp_KsHx[0][i] = state->K[0][0] * temp_sHx[0][i] + state->K[0][1] * temp_sHx[1][i];
	temp_KsHx[1][i] = state->K[1][0] * temp_sHx[0][i] + state->K[1][1] * temp_sHx[1][i];
	//***x(n|n) = x(n|n-1) + K(n) * [s - H(n)*x(n|n-1)]
	state->x[0][i+1] = state->x[0][i] + temp_KsHx[0][i];
	state->x[1][i+1] = state->x[1][i] + temp_KsHx[0][i];

	/*P(n|n) = [I - K * H] * P(n|n-1)*/
	//***I - K * H
	temp_IKH[0][0] = 1 - (state->K[0][0] * state->H[0][0] + state->K[0][1] * state->H[1][0]);
	temp_IKH[0][1] = 1 - (state->K[0][0] * state->H[0][1] + state->K[0][1] * state->H[1][1]);
	temp_IKH[1][0] = 1 - (state->K[1][0] * state->H[0][0] + state->K[1][1] * state->H[1][0]);
	temp_IKH[1][1] = 1 - (state->K[1][0] * state->H[0][1] + state->K[1][1] * state->H[1][1]);
	//***P(n|n) = [I - K * H] * P(n|n-1)
	state->P[0][0] = temp_IKH[0][0] * temp_P[0][0] + temp_IKH[0][1] * temp_P[1][0];
	state->P[0][1] = temp_IKH[0][0] * temp_P[0][1] + temp_IKH[0][1] * temp_P[1][1];
	state->P[0][0] = temp_IKH[1][0] * temp_P[0][0] + temp_IKH[1][1] * temp_P[1][0];
	state->P[0][0] = temp_IKH[1][0] * temp_P[0][1] + temp_IKH[1][1] * temp_P[1][1];
}
for(int i = 0; i < N; i++)
{
	printf("预测值为:%f\n",state->x[0][i]);
}

}

出现的错误提示是:
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(7): error C2143: 语法错误 : 缺少“)”(在“”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(7): error C2143: 语法错误 : 缺少“{”(在“
”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(7): error C2059: 语法错误:“)”
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(8): error C2054: 在“state”之后应输入“(”
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2143: 语法错误 : 缺少“)”(在“”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2143: 语法错误 : 缺少“{”(在“
”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2059: 语法错误:“类型”
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2059: 语法错误:“)”
1> KalFilterMain.c
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(7): error C2143: 语法错误 : 缺少“)”(在“”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(7): error C2143: 语法错误 : 缺少“{”(在“
”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(7): error C2059: 语法错误:“)”
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(8): error C2054: 在“state”之后应输入“(”
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2143: 语法错误 : 缺少“)”(在“”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2143: 语法错误 : 缺少“{”(在“
”的前面)
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2059: 语法错误:“类型”
1>e:\程序\kalmanfilter\progrem\kalmanfilter\kalmanfilter\kalmanfilter.c(44): error C2059: 语法错误:“)”

  • 0
    点赞
  • 0
    收藏 更改收藏夹
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lydia Zhai*

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值