epoh 发表于 2012-4-16 15:09 
%H=hadamard(n), H'*H = N*EYE(N).
%%%%in Matlab
谢谢!
不过有一个问题,这两个软件输出的矩阵要求n是2的幂,可是我用c语言程序却可以得到比如n=15时的hadamard矩阵。
R
> n=15
> 2*hadamard(n-4)-1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 1 1 1 1 1 1 1 1 1 1 1 1
[2,] 1 -1 -1 1 -1 -1 -1 1 1 1 -1 1
[3,] 1 -1 1 -1 -1 -1 1 1 1 -1 1 -1
[4,] 1 1 -1 -1 -1 1 1 1 -1 1 -1 -1
[5,] 1 -1 -1 -1 1 1 1 -1 1 -1 -1 1
[6,] 1 -1 -1 1 1 1 -1 1 -1 -1 1 -1
[7,] 1 -1 1 1 1 -1 1 -1 -1 1 -1 -1
[8,] 1 1 1 1 -1 1 -1 -1 1 -1 -1 -1
[9,] 1 1 1 -1 1 -1 -1 1 -1 -1 -1 1
[10,] 1 1 -1 1 -1 -1 1 -1 -1 -1 1 1
[11,] 1 -1 1 -1 -1 1 -1 -1 -1 1 1 1
[12,] 1 1 -1 -1 1 -1 -1 -1 1 1 1 -1
C
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1
1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1
1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1
1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1
1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1
1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1
1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1
1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1
1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1
1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1
1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1
1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1
1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1
不知道是怎么回事?