Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : copier une matrice [ Divers / Général ] (diable007)

dimanche 7 octobre 2007 à 03:08:03 | copier une matrice

diable007

bonjour,
j'ai besoin de copier une matrice dans une autre
exemple copier cette matrice d'ordre 2
11
10
dans une matrice d'ordre 4
 donc copier 4 fois cette matrice puisque la nouvelle matrice contient 4 lignes et 4 colonnes donc ma nouvelle matrice:
11   11
10   10

11   11
10   10

sachant que j'ai la fonction suivante pour construire une matrice et j'utilise pas de pointeur

Matrice(unsigned int nl, unsigned int nc)
{
   n = nl;
   m = nc;
   lignes = new ligne[n];  // allocations
   for (unsigned int i=0; i<n; i++)
   {   
      lignes[i] = new double[m];
      for(unsigned int j=0; j<m; j ++)
         lignes[i][j] = 0;  //initialisation à '0'
   }
}

merci d'avance

dimanche 7 octobre 2007 à 19:24:09 | Re : copier une matrice

Loki6

Membre Club
salut,

quel est ton problème en fait ?

Loki

dimanche 7 octobre 2007 à 19:34:13 | Re : copier une matrice

BruNews

Administrateur CodeS-SourceS
"j'utilise pas de pointeur"
c'est quoi d'autre qu'un pointeur le retour de 'new' ???

Tu es certain que ce sera performant avec tous ces new en boucle ? sans compter les delete correspondants qu'il faudra.

ciao...
BruNews, MVP VC++

dimanche 7 octobre 2007 à 20:21:04 | Re : copier une matrice

diable007

c'est pas performants les new?

dimanche 7 octobre 2007 à 20:47:20 | Re : copier une matrice

BruNews

Administrateur CodeS-SourceS

En boucle aucun appel d'alloc n'est performant, surtout si on peut s'en passer.

TON CODE:
  lignes = new ligne[n];  // allocations
  for(unsigned int i=0; i<n; i++) {  
    lignes[i] = new double[m];
    for(unsigned int j=0; j<m; j ++) lignes[i][j] = 0;
  }

Donc le but est d'obtenir un tableau de:
n * m * sizeof(double)
S'obtient idem en 1 seule alloc:
doubles *lignes = (double*) malloc(n * m * sizeof(double));

Les temps d'accès aux éléms seront ensuite nettement meilleurs, aucun besoin de déréférencer des adresses, on y pointe dirrct.
Il y aura aussi 1 seule désalloc, tout benef.

ciao...
BruNews, MVP VC++


lundi 8 octobre 2007 à 11:06:50 | Re : copier une matrice

buno

Salut,
Encore des problèmes avec tes matrices?
C'est quoi le souci? Tu as une matrice 2x2 et tu veux en faire une 4x4 en recopiant les valeurs?
Si tu sais construire une 2x2, tu répètes le processus en décalant les indices de boucles...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage

lundi 8 octobre 2007 à 12:19:56 | Re : copier une matrice

diable007

je suis pas stupide,
je veux pas faire ça car c'est pas performant, c'est pourquoi je cherche une méthode de copiage.


lundi 8 octobre 2007 à 14:08:38 | Re : copier une matrice

buno

???
Loin de moi l'idée de t'insulter, rassures-toi! Si tu l'as pris comme tel, je te prie de m'excuser...
Qu'entends-tu par "copiage"?
Tu peux avoir une fonction de ce type (pas du tout testé, plutôt du pseudo-code sur lequel s'appuyer):

Matrice::copie(int HauteurSousMatrice, int LargeurSousMatrice, Matrice & sousMatrice, int NbCopie)
{
  // Allocation de la matrice
  // Hauteur = HauteurSousMatrice*NbCopie
  // Largeur = LargeurSousMatrice*NbCopie

  // Remplissage
  for (int i=0; i<NbCopie, i++)
  {
    // Copie de la sous matrice "à la bonne place"
    // indexLargeur de départ:  i*LargeurSousMatrice
    // indexHauteur de départ: i*HauteurSousMatrice
    for (int x=0; x<LargeurSousMatrice; x++)
      for (int y=0; y<HauteurSousMatrice; y++)
        this->matrice[i*LargeurSousMatrice+x][i*HauteurSousMatrice+y]=sousMatrice[x][y];
  }
}


Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage



Cette discussion est classé dans : int, lignes, copier, matrice, unsigned


Répondre à ce message

Sujets en rapport avec ce message

class matrice [ par flaky ] Slt à tousJ'utilise une classe "matrice" (celle de nicolas aunai, téléchargée sur le site) qui fonctionne très bien. Mais j'ai du mal à manipuler l'ob classe matrice [ par cyrinelahsini ] salut,je programme avec c++ sous linux.j'utilise une class matrice avec une fonction membre qui doit me retourner une instance de cette class.mais j'a problème avec l'affichage d'une classe matrice [ par laderivier ] J'ai recontrer un problème complètement fou à mes yeux en voulant creer un classe matrice, qui effectue des calcul de base sur les matrice. voilà le c Convertion c++ à VB [ par jnbrunet ] Bonjours,Je ne suis pas très connaissant en c++.Est-ce que quelqu'un pourrait me traduire cette fonction en Visual Basic 6.0 ou .NET.P.S.: le pucData algorithmique de fonction rec [ par fs_fck_sarko ] bonjour tout le monde, est ce que quelquun pourai maider pour le calul de complexite d'un programme qui resout les sudoku ? En fait je voudrais trouve Aide sur la construction d'une fonction [ par iamor ] Bonsoir, je souhaite améliorer un programme que j'ai codé pour qu'il soit plus clean, mais pour se faire j'aurai besoin d'avoir une petite aide sur la Surcharge des opérateurs [ par karamellatti ] salut tout le monde,je sollicite votre aide pour la résolution d'un ptit problem concernant un mini-programme de calcul matriciel..voici  le programme classe CxImage avec vc2005 [ par adumal ] Salut J'essai depuis peu d'integrer une partie de la classe CxImage (simple conversion d'un format JPG au format BMP) Après avoir inclut au projet les compilation mai au lancement "erreur la memoire ne peu pas pas etre read" [ par touny23 ] je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre .j arrive a compiler sous dev-cpp mai lo prob pour coder fichier sur une matrice [ par Jazz_s ] je voudrais lire un fichier via fstream et ensuite reproduire celui ci parfaitement dans une matrice pour pouvoir jongler facilement par apres avec le


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.