IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[S.O.S] comment récupérer une partie d'un tableau 2D


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [S.O.S] comment récupérer une partie d'un tableau 2D
    Bonjour,

    Je récupère des données de matlab sous la forme d'un jaggedarray (tableau en escaliers)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double [][] temp = (((MLDouble)evt).GetArray());
    Ce tableau est toujours de dimension Nx1. Je voudrais savoir si il existe un moyen simple pour récupérer le vecteur de N éléments directement dans un vecteur à une dimension genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double [] res = ... temp ... ;
    Pour le moment tout ce que je trouve à faire c'est une boucle qui remplit le vecteur res de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i = 0; i < temp.Length; i++)
    {
       res[i] = temp[i][0];
    }
    Merci d'avance pour votre aide :-).

  2. #2
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 42
    Points : 50
    Points
    50
    Par défaut
    Essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    double[] temp2 = Array.ConvertAll(temp, new Converter<double[], double>(delegate(double[] t) { return t[0]; }));
    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut WAAAAA
    Bien bluffant et surtout ça marche. Je vais maintenant essayer de piger comment (je connaissais pas "delegate" par exemple) ;-).

    Merci Prof et bonne journée

  4. #4
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 42
    Points : 50
    Points
    50
    Par défaut
    De rien.

    Voici une proposition d'ordre général qui permet d'extraire une colonne d'une matrice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
        /// <summary>
        /// A template class playing the rule of array "extractor"
        /// 
        /// Using:
        /// double[][] x = { new double[] { 1, 2, 3 }, new double[] { 3, 4, 5 } };
        /// double[] y = ArrayExtractor<double>.Exctract(x, 1); // extract the second column
        /// y = {2, 4};
        /// </summary>
        /// <typeparam name="T">The type of the content of the array</typeparam>
        class ArrayExtractor<T>
        {
            /// <summary>
            /// Extract a column of array
            /// </summary>
            /// <param name="input">The array to Extract</param>
            /// <param name="index">The index of the column</param>
            /// <returns>The extrated column</returns>
            public static T[] Exctract(T[][] input, int index)
            {
                return Array.ConvertAll(input, new Converter<T[], T>(delegate(T[] t) { return t[index]; }));
            }
        }
    Note:
    delegate est un "moyen" de passer une fonction comme paramètre de fonction. C'est en quelque sorte le pointeur de fonction en C++ (si je ne m'abuse).

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Formulaire - Comment récupérer une partie d'un champ texte
    Par Invité dans le forum IHM
    Réponses: 3
    Dernier message: 10/06/2011, 16h22
  2. Récupérer une partie d'un tableau à 3 dimensions
    Par grinder59 dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2009, 10h23
  3. [HTML] comment récupérer une ligne d'un tableau avec HTML?
    Par jaafarerraji dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/10/2007, 00h21
  4. Comment récupérer une partie d'image?
    Par fredonouille dans le forum C#
    Réponses: 5
    Dernier message: 28/09/2007, 12h06
  5. comment récupérer une partie d'une chaine
    Par yannickrohel dans le forum C
    Réponses: 7
    Dernier message: 27/02/2006, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo