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));  //1008
		fscanf(fp,"%d\n",&(matrix->M1)); //504   
		fscanf(fp,"%d\n",&(matrix->M));  //504
		fscanf(fp,"%d\n",&(matrix->G_mcw)); //281 
		fscanf(fp,"%d\n",&(matrix->H_mrw)); //6


		
		//get G,N*G_mcw
		matrix->G=(unsigned int *)malloc((sizeof(unsigned int))*matrix->N*matrix->G_mcw);
		for(i=0;i<matrix->N*matrix->G_mcw;i++)//i<1008*281
		{
			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 + -
显示快捷键?