2017-10-19 29 views
-1

j'ai écrit un code comme ci-dessous:Représenter ces données sous forme de matrice dans C

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char *argv[]) 
{ 
    #define SIZE 1000 

    FILE *fp = NULL; 
    int i = 0; 
    size_t bytes = 0; 

    if ((fp = fopen("raw_data.ht3", "rb")) == NULL) { 
    printf ("could not open file\n"); 
    return 0; 
    } 
    fclose(fp); 
    return 0; 
} 

Ce me donner entier unique pour toutes les données lues. Je dois présenter ces données sous une forme matricielle. La matrice sera sous la forme de 500 par 349. Comment pourrais-je présenter les données comme ça? À partir de ces données, je ferai plus tard un graphique matriciel. Merci! Votre aide sera appréciée.

+0

Avez-vous vos données en ordre? Vous pouvez simplement itérer la matrice avec 2 pour les boucles et y ajouter de nouveaux éléments. – Mare70

+0

Quel est le format de fichier de données? – alseether

+0

@ Mare70 ouais les données sont en ordre. donc tout ce que j'obtiens est une rangée de données. J'ai besoin d'une rangée et d'une colonne. Alors c'est ça. – hphys

Répondre

1

Au lieu de l'union que vous avez actuellement, faites ceci:

typedef union 
{ 
    uint8_t u8 [2]; 
    uint16_t u16; 
} meaningful_name_here; 

Ensuite, vous pouvez faire

meaningful_name_here stuff [1000]; 

ou

meaningful_name_here stuff [500][349]; 

Aussi s'il vous plaît garder à l'esprit que les grands tableaux comme ceux-ci ne devraient pas être alloués sur la pile. Attribuez-les comme static ou avec l'allocation dynamique à la place.

+0

comment puis-je présenter les données dans ce cas? – hphys