我想为hadamard矩阵执行这个c代码。并且想要hadamard矩阵的新代码(如果有的话)

时间:2015-10-09 06:01:12

标签: c

我正在尝试为Hadamard matrix代编译此代码。谁能告诉为什么这段代码没有被执行?

#include <stdio.h>
#include <math.h>
#include <conio.h>

main() {
int H_SIZE=32;  /*length of each code word: you can change. */
int n,r1,c1,i,j;
int hadamard_matrix[2][2]={{1,1},{1,0}}; /* Initialise 1x1 matrix */
for (r1=0;n<H_SIZE; r1*=2){
for(c1=0; c1<H_SIZE;c1*=2){
    while (r1<H_SIZE){
        for (i=0;i<r1;i++){ /* loop#1: Copying the code matrix itself    below for new code matrix */
            for (j=0;j<c1; j++){
            hadamard_matrix[i+r1][j]=hadamard_matrix[i][j];
        }
        }
        for (j=0; j<c1;j++){/* Loop#2: Copying the code matrix on right to itself for new matrix */
            for (i=0; i<r1;i++){
            hadamard_matrix[i][j+c1]=hadamard_matrix[i][j];
            }
        }
        for (i=0;i<r1;i++){/* Loop#3: Copying cojugate of code matrix for complentary diagonal part */
            for (j=0;j<c1;j++){
                hadamard_matrix[i+r1][j+c1]=hadamard_matrix[i][j];}}  
      }        
    }
   }
printf("%d\t", hadamard_matrix);
}

1 个答案:

答案 0 :(得分:0)

首先:通过编译器运行它,我不会编译它。启用编译器警告。

其次:

main() {

那不行。做:

void main(void) {

第三

n<H_SIZE

Wtf是应该做的吗?您可能想要输入r1。请注意,您的n也从未初始化,也从未在代码中的任何其他位置使用

第四:

printf("%d\t", hadamard_matrix);

不是打印矩阵的方式。

你似乎也错过了某个地方的右大括号。