zigbee矩阵算法
来源:互联网 发布:东北大学网络教育官网 编辑:程序博客网 时间:2024/06/05 03:06
//Sensor.c
#include "Sensor.h"
/*矩阵乘法
C = A_T * A =2x2
2x2 x 2x8 = 2x8
2x8 x 8x1 = 2x1
*/
void MatrixMulti_1(float a[2][8],float b[8][2],float c[2][2])
{
int i,j,q;
for(i = 0;i < 2;i++)
for(j = 0;j < 2;j++)
for(q = 0; q < 8;q++)
c[i][j] += a[i][q] * b[q][j];
}
void MatrixMulti_2(float a[2][2],float b[2][8],float c[2][8])
{
int i,j,q;
for(i = 0;i < 2;i++)
for(j = 0;j < 8;j++)
for(q = 0; q < 2;q++)
c[i][j] += a[i][q] * b[q][j];
}
void MatrixMulti_3(float a[2][8],float b[8][1],float c[2][1])
{
int i,j,q;
for(i = 0;i < 2;i++)
for(j = 0;j < 1;j++)
for(q = 0; q < 8;q++)
c[i][j] += a[i][q] * b[q][j];
}
/*
t为转置前的矩阵,k为转置后的矩阵
*/
void MatrixTranspose(float A[N-1][T],float A_T[T][N-1])
{
int i,j;
for(i=0;i<N-1;i++)
for(j=0;j<T;j++)
A_T[j][i] = A[i][j];
}
/*
计算行列式
按第一行展开计算|A|
*/
float getA(float arcs[T][T],int n)
{
float ans = 0;
float temp[T][T];
float t;
int i,j,k;
if(n==1)
{
return arcs[0][0];
}
for(i=0;i<n;i++)//原行列式的n列
{
for(j=0;j<n-1;j++)//n-1行
{
for(k=0;k<n-1;k++)//n-1列
{
temp[j][k] = arcs[j+1][(k>=i)?k+1:k];
}
}
t = getA(temp,n-1);
if(i%2==0)
{
ans += arcs[0][i]*t;
}
else
{
ans -= arcs[0][i]*t;
}
}
return ans;
}
/*
计算每一行每一列的每个元素所对应的余子式,组成C*
arcs[T][T]原矩阵,n矩阵的级数,ans[T][T]的伴随矩阵
*/
void getAStart(float arcs[T][T],int n,float ans[T][T])
{
int i,j,k,t;
float temp[T][T];
if(n==1)
{
ans[0][0] = 1;//保证一个元素的矩阵的逆矩阵为其倒数
return;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n-1;k++)
{
for(t=0;t<n-1;t++)
{
temp[k][t] = arcs[k>=i?k+1:k][t>=j?t+1:t];
}
}
ans[j][i] = getA(temp,n-1);
if((i+j)%2 == 1)
{
ans[j][i] = - ans[j][i];
}
}
}
}
//Sensor.h
#ifndef SENSOR_H_INCLUDED
#define SENSOR_H_INCLUDED
#define N 9 //9个点
#define K N-1
#define T 2 //两列
float getA(float arcs[T][T],int n);
void getAStart(float arcs[T][T],int n,float ans[T][T]);
void MatrixTranspose(float A[N-1][T],float A_T[T][N-1]);
void MatrixMulti_1(float a[2][8],float b[8][2],float c[2][2]);
void MatrixMulti_2(float a[2][2],float b[2][8],float c[2][8]);
void MatrixMulti_3(float a[2][8],float b[8][1],float c[2][1]);
#endif // SENSOR_H_INCLUDED
0 0
- zigbee矩阵算法
- ZigBee无线通信,定位算法研究
- 矩阵算法
- 矩阵算法
- 矩阵算法
- ZigBee
- Zigbee
- Zigbee
- ZigBee
- ZigBee
- ZigBee
- zigbee
- zigbee
- zigbee
- Zigbee
- Zigbee
- 有感于Zigbee的路由算法思路
- 蛇行矩阵算法
- 还是畅通工程
- hdu5322 三次多校1007
- 程序员,为什么千万不要重写代码?
- 2014年上海赛区现场赛 I 题 Defeat the Enemy
- 模仿微信声音锁的实现(运用DTW算法)
- zigbee矩阵算法
- easyui 获取指定列的值,格式化该列的值的实例
- 扫描word文档提取email地址
- Mysql海量数据存储和 分布式DB方案
- Algorithms—206.Reverse Linked List
- Java中从控制台输入数据的几种常用方法(scanner)
- 关于java子类重写的一道面试题
- Android-给照片底部添加波浪效果
- Matlab--随机机数的产生