Hadamard Matrix在matlab里面可以用函数hadamard(n)实现,可是我的程序是在R编的,希望可以用R来实现。
本人水平太低,搞了很久都没有弄出来,希望各位大虾帮忙看看。
我有一个c语言的程序是这么编的:
/* 产生Hadamard矩阵(hmat)*/
for (u = 0;u < N; u++)
for (v = 0;v < N;v++)
{
cnt = 0;
for (uv=u&v; uv ; uv >>= 1 ) {
cnt += uv & 1;
}
*(hmat+(N*u)+v) = ((cnt & 1) ? -1 : 1);
}
/***** 将Hadamard矩阵转换成顺序形式sequency order ******/
/* ncount - vector of number of zero crossings in each row of hmat*/
for (i = 0;i < (N-1);i++)
for (j = 0;j < N;j++)
if (*(hmat+i+(j*N)) != (*(hmat+(i+1)+(j*N)))) ncount[j] += 1;