get_matrix.cpp

来自「LDPC的c代码 包括编码 解码 加噪声 校验矩阵 生成矩阵」· C++ 代码 · 共 64 行

CPP
64
字号
#include "LDPC_head.h"
#include <stdlib.h>
#include <iostream>

matrix_bit *get_matrix()
{
	matrix_bit *matrix;
	unsigned int i;
	unsigned int j;
	FILE	*fp;

	matrix=(struct matrix_bit *)malloc(sizeof(struct matrix_bit));
	fp=fopen("matrix1.txt","r");
	if(fp==NULL)
	{
		cout<<"can't open the file!"<<endl;
		exit(0);
	}
	else
	{
		fscanf(fp,"%d\n",&(matrix->N));  
		fscanf(fp,"%d\n",&(matrix->M1));    
		fscanf(fp,"%d\n",&(matrix->M));  
		fscanf(fp,"%d\n",&(matrix->G_mcw));  
		fscanf(fp,"%d\n",&(matrix->H_mrw)); 


		
		//get G
		matrix->G=(unsigned int *)malloc((sizeof(unsigned int))*matrix->N*matrix->G_mcw);
		for(i=0;i<matrix->N*matrix->G_mcw;i++)
		{
			matrix->G[i]=0;
		}
		for(i=0;i<matrix->G_mcw;i++)
		{
			for(j=0;j<matrix->N;j++)
			{
				fscanf(fp,"%d\n",&(matrix->G[i*matrix->N+j]));
			}
		}

	
		//get H
		matrix->H=(unsigned int *)malloc((sizeof(unsigned int))*matrix->H_mrw*matrix->M);
		for(i=0;i<matrix->H_mrw*matrix->M;i++) 
		{
			matrix->H[i]=0;
		}
		for(i=0;i<matrix->M;i++)
		{
			for(j=0;j<matrix->H_mrw;j++)
			{
				fscanf(fp,"%d\n",&(matrix->H[i*matrix->H_mrw+j]));
			}
		}

	//	for(int pp = 0;pp <50;pp++)
	//		std::cout<<pp<<" "<<matrix->H[pp]<<"\n";
		fclose(fp);

	}
	return(matrix);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?