| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 388 人关注过本帖
标题:如何将将262144*4的二维数组转换为1024*1024的二维数组,附代码,先谢谢啦! ...
只看楼主 加入收藏
晓亮2015
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-11-5
结帖率:33.33%
收藏
已结贴  问题点数:4 回复次数:3 
如何将将262144*4的二维数组转换为1024*1024的二维数组,附代码,先谢谢啦!
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

#define luint unsigned long int
#define uint unsigned int
#define MM 4109
#define cc  ka*64+kb
#define MAX 1000

int main(int argc, char* argv[])
{
    FILE *fp=fopen("lut15.txt","r");

    luint m,n;//原始数据行列数
    double **rawdata;//262144*4的二维数组
    double aa[1024][1024];//1024*1024的二维数组,也可以设置为luint整形
    //临时参数
    luint i,j;
    char ch;
//-------------------------------------------------------------------------------------------
    luint ma,mb,na,nb,ta,tb,ka,kb;
    luint NN,count,counter;//NN为判断peak的阈值,MM为64*64,count用于在求NN时统计元素个数
    luint bb[64][64];//aa中位二维1024*1024的数值,bb中位64*64的peak值:
    luint r[4096],c[4096];//c,d中分别为peak在aa中的峰值位置
    luint ra,ca;//统计64*64peak的个数
//-------------------------------------------------------------------------------------------

////////////////读入文件中存储的原始数据////////////////
    if (fp==NULL)
    {
        printf("File not existing!");
        exit(1);
    }

    m=0;
    n=0;
//统计行数
    do
    {
        ch=fgetc(fp);
        if(ch=='\n')//判断总共有多少行,依据是'\n'换行符
            m++;
    }
    while(ch!=EOF);

    rewind(fp);
//统计列数
    do
    {
        ch=fgetc(fp);
        if(ch=='\t')//判断每行有多少元素,依据是'\t' '\X09' 制表键
            n++;
        //if(ch==',')
    }
    while(ch!='\n');//如果相等,说明一行结束
    n++;
    printf("row:%d\ncol:%d\n",m,n);

//生成动态二维数组
    rawdata=(double**)malloc(m*sizeof(double*));
    for(i=0;i<m;i++)
        rawdata[i]=(double*)malloc(n*sizeof(double));
    rewind(fp);
//将矩阵数据读入,赋值给二维数组
    for(i=0;i<m;i++)
    {
    for(j=0;j<n;j++)
    fscanf(fp,"%lf,",&rawdata[i][j]);//将每一行的数据存入到数组的行中,且此处是指针寻址,所以数组元素要取地址
                            //通过文件指针fp将磁盘文件中的数据写入到二维数组的存储单元中。这里
给出了地址入口。
    }

    printf("The rawdata is:\n");
/*    for(i=0;i<m;i++)//显示矩阵
        for(j=0;j<n;j++)
        {
            printf("%lf ",rawdata[i][j]);
            if(j+1==n)
                printf("\n");
        }
*/   
    printf("%lf,%lf ",rawdata[1][1],rawdata[2][2]);//实现将txt中数据复制到二维数组中:验证是否存入
    printf("\n");
    fclose(fp);
//*************************************************************************************************
上面的程序实现的是将txt中的262144*4点阵数据存入到262144*4的二维数组中;
下面的程序代码是将262144*4的二维数组转换为1024*1024的二维数组,
要求是将262144*4的二维数组按行来逐一存入到1024*1024的每一行中去。。。不知道怎么操作,麻烦各位指导下!!!先谢谢啦!
**************************************************************************************************//
???
搜索更多相关主题的帖子: include double 如何 
2013-11-05 21:37
pink_duo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:209
专家分:1054
注 册:2013-11-5
收藏
得分:2 
你怎么老是和数组过不去

埋头做牛,抬头做人,低头做狗
2013-11-06 08:58
pink_duo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:209
专家分:1054
注 册:2013-11-5
收藏
得分:0 
只能帮你到这了
#include <stdio.h>
#include <string.h>
int main()
{  
    int a[5][4] = {
                {0,1,2,3},
                {4,5,6,7},
                {8,9,10,11},
                {12,13,14,15},
                {16,17,18,19}
                };
    int b[2][8];
    int c[16];
    int i=0;

    memcpy(b,a,20 *sizeof(int));

    for(i=0;i<16;i++)
    {
        printf("%d\n",c[i]);
    }
}

埋头做牛,抬头做人,低头做狗
2013-11-06 10:38
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:2 
我写了个代码试试.  a[262144][4] -> b[1024][1024]
首先:         1. 定义2个变量 i,j,表示 b 数组的第一和第二维.例如 b[i][j];
              2. 定义2个变量 k,l 表示 a 数组的第一和第二维.如 a[k][l];
其它的我就写数字了,要定义变量你自己定义.
代码如下:
程序代码:
int a[26144][4], b[1024][1024];
int i, j, k, l;

for (i = 0, k = 0, l = 0; i < 1024 && k < 26144; i++)   // 两个判断保证2个数组不越界
        for (j = 0; j < 1024 && l <= 4; j++, l++) {
            if (l == 4) {     // 这里换行.
                l = 0;
                k++;
            }
            b[i][j] = a[k][l];

        }


 
2013-11-06 11:13
快速回复:如何将将262144*4的二维数组转换为1024*1024的二维数组,附代码,先谢 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030024 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved