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

API standards et tierces Java Discussion :

[débutant][JSci][Matrix]comment utiliser cette classe


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 31
    Points : 24
    Points
    24
    Par défaut [débutant][JSci][Matrix]comment utiliser cette classe
    Bonjour,

    Je voudrai savoir si quelqu'un a déjà utilisé les classes Matrix, ou AbstractDoubleMatrix ou AbstractDoubleSquareMatrix de l'API JSci.
    Car je ne sais pas trop comment m'en servir.

    Voilà moi je voudrai utiliser la classe "AbstractDoubleSquareMatrix" (AbstractDoubleSquareMatrix hétite de la classe "Matrix") mais c'est une classe abstraite, donc je la fais hériter et je dois redéfinir les méthodes abstraites. Et la ???

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Matriz extends AbstractDoubleSquareMatrix{
     
     
    	//Constructor
    	public Matriz(int size)
    	{
    		super(size);
    	}
        public void setElement(int i, int j, double x){}
        public double getElement(int i, int j){double a = 0; return a; }
    Bon je l'ai juste rempli pour qu'il n'y ai pas d'érreur à la compilation mais je ne fais rien du tout de concret.

    Car par exemple pour la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public double getElement(int i, int j){}
    je pense qu'il faudrai écrire un truc du styleMais que mettre à la place des "......." ?

    Il faudrait mettre le nom de l'Objet, mais cela se mort la queue puisque c'est une méthode de l'objet lui même.

    Alors j'ai regardé comment était programmé la classe Matrix fournit par l'API JSci.

    Et le constructeur de la classe "Matrix" donne des valeurs juste aux attributs numRows et numCols

    Voici le code:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    package JSci.maths;
     
    import JSci.maths.algebras.Algebra;
     
    /**
    * The Matrix superclass provides an abstract encapsulation for matrices.
    * @planetmath Matrix
    * @version 2.2
    * @author Mark Hale
    */
    public abstract class Matrix extends Object implements Algebra.Member {
            /**
            * The number of rows.
            */
            protected final int numRows;
            /**
            * The number of columns.
            */
            protected final int numCols;
            /**
            * Constructs a matrix.
            */
            public Matrix(int rows, int cols) {
                    numRows = rows;
                    numCols = cols;
            }
            /**
            * Returns the number of rows.
            */
            public final int rows() {
                    return numRows;
            }
            /**
            * Returns the number of columns.
            */
            public final int columns() {
                    return numCols;
            }
            /**
            * Returns the transpose of this matrix.
            * @planetmath Transpose
            */
            public abstract Matrix transpose();
            /**
            * Returns an "invalid element" error message.
            * @param i row index of the element
            * @param j column index of the element
            */
            protected static String getInvalidElementMsg(int i, int j) {
                    return "("+i+','+j+") is an invalid element for this matrix.";
            }
    }
    Si quelqu'un à une idéé? Car c'est bien joli de créer une Matrice 5x5, mais il faut bien la remplir ou vérifier ce qu'elle contient à un moment.

    Sinon je ne vois pas à quoi servent ces classes fournient par JSci?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Bon j'ai trouvé une solution mais cela me parait bizarre et ensuite je suis bloqué. J' ai fait:
    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
     public class Matriz extends AbstractDoubleSquareMatrix{
     
     
        private double[][] mat;
     
    	//Constructor
    	public Matriz(int size)
    	{
    		super(size);
    		mat = new double[size][size];
    	}
        public void setElement(int i, int j, double x){mat[i][j] = x;}
     
        public double getElement(int i, int j){return mat[i][j]; }
     
     
    }
    je teste en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Matriz m = new Matriz(4);
            m.setElement(0,0,1);
            m.setElement(1,1,1);
            m.setElement(2,2,1);
            m.setElement(3,3,2.56);
            m.setElement(2,3,2256.56);
     
     
            System.out.println(""+m.getElement(0,0));
            System.out.println(""+m.getElement(1,1));
            System.out.println(""+m.getElement(2,2));
            System.out.println(""+m.getElement(3,3));
            System.out.println(""+m.getElement(2,3));
            System.out.println(""+m.getElement(2,1));
    Cela fonctionne.....

    Mais j'ai essayer d'utiliser la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public AbstractDoubleSquareMatrix add(final AbstractDoubleSquareMatrix m)
    de la classe AbstractDoubleSquareMatrix qui permet d'ajouter 2 matrice et retourne un matrice.
    en faisant :
    et j'ai une erreur: "incompatible types"

    Dans mon cas "m" est un objet Matriz qui hérite de la classe AbstractDoubleSquareMatrix.

    Mais est-ce que il n'y a pas un actuce pour que les types soient compatibles?

    Sinon comment je vais faire pour pouvoir utiliser toutes les méthodes de la classe AbstractDoubleSquareMatrix

    En tout cas je vois qu'il n'y a pas beaucoup de monde qui utilise ces classes AbstractDoubleSquareMatrix, Matrix... et l'API JSci en général!

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    TROUVÉ!!!
    Bon en regardant d'un peu plus près dans la doc de l'API JSci, j'ai trouvé les solutions à mes problèmes. Vu que je débute je ne sais pas très bien utilisé les docs.

    En fait pour utiliser des Objet similaires a des Matrices "carrés" et toutes les méthodes qui vont avec (division, multiplication, addition, soustraction, inverse, transposé...) il faut utiliser la Classe du JSci.

    Pour utiliser des Objets similaires a des Matrices et toutes les méthodes qui vont avec (division, multiplication, addition, soustraction, inverse, transposé...), il faut utiliser la Classe du JSci.

    Pour utiliser des Objets similaires a des Vecteurs, il faut utiliser la Classe du JSci.

    Remarque:
    Pour utiliser des Objets similaires a des Matrices "vides", il faut utiliser la Classe du JSci.
    Ceci permet d'avoir des matrices partiellement remplies, ce qui utilise moins d'espace mémoire. C'est ce que j'en conclu.

    Je me remercie à moi même car j'ai trouvé la solution tout seul comme un "Grand" et malheureusement peu de personnes m'ont aidé sur ce Problème.
    J'éspère que ce message servira pour les gens qui rencontreront le même probleme que moi...

    A+

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

Discussions similaires

  1. [CS5] Comment utiliser cette classe ?
    Par Stalk3R dans le forum Flash
    Réponses: 0
    Dernier message: 30/12/2010, 14h02
  2. [USB]Comment utiliser cette API pour la communication USB
    Par fouguasse dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 19/08/2007, 18h18
  3. Réponses: 2
    Dernier message: 05/08/2006, 13h29
  4. comment utiliser cette fonction?
    Par jojo57 dans le forum Access
    Réponses: 4
    Dernier message: 01/06/2006, 08h38
  5. Réponses: 4
    Dernier message: 16/02/2006, 16h28

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