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

MATLAB Discussion :

Ecriture d'une matrice symbolique à n lignes et m colonnes [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut Ecriture d'une matrice symbolique à n lignes et m colonnes
    bonjour tout le monde

    est-ce que c'est possible d'écrire une matrice A de n lignes et de m colonnes (n<<m) et qui a pour coefficients aij (qui sont des inconnus à déterminer par la suite) c'est à dire comme résultat je veux
    soit A=

    a11 a12 a13 .. a1m
    a21 a22 a23 .. a2m
    : : :
    an1 an2 an3 .. anm

    J'aimerais éviter d'écrire A=[a11 a21 .. an1;a12 a22.. an2;....;a1m a2m .. anm] parce que le nombre de colonnes m est très grand

    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Bonjour Yors,

    Euh tout dépend de ce que tu veux mettre dans ta matrice? une suite de nombre sans rapport entre eux ou dérivant d'un algorithme ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for ii = 1:Nbr_ligne
    for jj = 1:Nbre_colone
     
    A(ii,jj) = blabla
    end
    end
    je comprends donc pas vraiment ta question.
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    merci pour votre réponse,
    ce que je veux exactement c'est l'affichage d'une matrice A (n,m) qui comporte un certain nombre d'inconnus les aij
    ces inconnus je vais les calculer par la suite grâce à un système d'équations en fonction des aij donc tout d'abord il faut que je fais l'entrée de cette matrice. j'espère que vous m'avez compris
    Images attachées Images attachées  

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Ce que tu dis n'a pas beaucoup de sens: tu dis que tu veux une matrice de aij que tu vas calculer à l'aide des aij ...

    Le logiciel Matlab fait du calcul matricielle. Les valeurs de i et j sont intrinsèque au code, il est impossible de définir une matrice "vide".

    En revanche tu peux créer une matrice, de 1 par exemple avec ones(nbr_ligne, nbr_colone) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >> ones(4,3)
     
    ans =
     
         1     1     1
         1     1     1
         1     1     1
         1     1     1
    Ceci sert en générale à définir la taille d'une matrice avant son remplissage par calcul. C'est assez important si la matrice est imposante car ceci rend le code plus rapide en allouant directement la mémoire nécessaire pour le résultat.

    Voilà je ne sais pas si j'ai répondu à ta question.
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    non ce n'est pas ce que je voulais
    j'aimerais écrire cette matrice par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    A=[dx<sub>1</sub> dy<sub>1</sub> dz<sub>1</sub>; dx<sub>2</sub> dy<sub>2</sub> dz<sub>2</sub>; ...;dx<sub>i</sub> dy<sub>i</sub> dz<sub>i</sub>]
    par exemple par la suite dans mon algorithme lorsque je fais ma première itération (i=1) je veux prendre la première colonne [dx1;dy1;dz1] de ma matrice et si je fais la deuxième itération (i=2) je prends la deuxième colonne [dx2;dy2;dz2] de ma matrice ainsi de suite ( bien sure je vais mettre tout ça dans une boucle for)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    pour créer une matrice de données tu n'as pas 36 solutions :

    - soit tu la tapes à la main

    A = [ 1 5 9 ; 7 8 5] ;

    - soit tu la lis depuis une autre fichier data, en format ASCII (.txt, .xls, etc...) ou binaire (.m, etc..)

    A = load('data.m')

    - soit tu réalises une matrice de données simples (remplie de "1" avec ones, valeurs aléatoires avec rand etc..)

    A= rand(4,3)

    Tu n'as pas d'autre solution.
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    merci pour la réponse, donc j'ai pas le choix je vais l'écrire à la main

  8. #8
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    En fait, si j'ai bien compris la question, je pense que c'est possible. Il faut que tu t'intéresses aux fonctions texte de matlab.
    En gros, tu incorpores du texte avec une boucle pour écrire tous tes indices aij dans ta matrice.

  9. #9
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    Encore faut-il que toutes les chaînes de caractères aient la même longueur (si ton i ou j dépasse 9 ça ne sera plus le cas), sinon c'est une cellule qu'il faut.

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    merci à vous tous,
    j'ai dû écrire ma matrice manuellement (3 lignes et 472 colonnes)

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    pourrais tu l'afficher dans ce thread s'il te plait ? histoire de voir pourquoi nous n'avions pas trouvé la solution à ton problème..
    Ou les 10 premières lignes tout du moins (avec le balise CODE)
    Merci d'avance.
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    oui bien sure
    voici ce que j'ai dû écrire manuellement sur matlab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    syms dx1 dx2 dx3  .. dx472 %bien sure ici j'ai écrit (..) mais dans mon code je suis parti de 1 jusqu'à 472
    syms dy1 dy2 dy3 .. dy472
    syms dz1 dz2 dz3 .. dz472
    A(1,:)=[dx1 dx2 dx3 dx4 dx5 dx6 dx7 dx8 dx9 dx10 dx11 dx12 dx13 dx14 dx15 dx16 dx17 dx18 dx19 .. dx468 dx469 dx470 dx471 dx472];
    A(2,:)=[dy1 dy2 dy3 dy4 dy5 dy6 dy7 dy8 dy9 dy10 dy11 dy12 dy13 dy14 dy15 dy16 dy17 dy18 dy19 .. dy468 dy469 dy470 dy471 dy472];
    A(3,:)=[dz1 dz2 dz3 dz4 dz5 dz6 dz7 dz8 dz9 dz10 dz11 dz12 dz13 dz14 dz15 dz16 dz17 dz18 dz19 .. dz468 dz469 dz470 dz471 dz472];
    Puisque je n'ai pas pu affecter l'indice i à dx, dy et dz ( c'est à dire dxi dyi et dzi ) pour que je puisse faire une boucle for j'ai dû écrire la matrice A manuellement

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Ok, tu voulais donc non pas une matrice de valeur mais un tableau de caractère ?

    un peu comme ceci ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     for kk=1:10
    A{1,kk} = ['dx',num2str(kk)];
    A{2,kk} = ['dy',num2str(kk)];
    A{3,kk} = ['dz',num2str(kk)];
    end
    A
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  14. #14
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    non je veux une matrice remplie de variables inconnues que je vais déterminer par la suite par la fonction solve
    donc si je mets ce que vous m'avez écrit je ne pourrais plus par exemple faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    P=[1;2;3];
    H=dot(P,A(:,1));
    ??? Conversion to cell from char is not possible.
    alors que si j'écris la matrice A manuellement ( tel que je ne les supposent pas des chaines de caractères) je trouve comme résultat H=dx1+2*dy1+3*dz1

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Pour quoi ne pas partir simplement d'un tableau symbolique ?
    Écrire 3 fois 472 variables c'est quand même un peu

  16. #16
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Je suis une débutante en matlab, je ne sais pas tout, mais merci pour votre réponse

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

Discussions similaires

  1. Ecriture d'une matrice uitable dans un .txt
    Par Tarabass911 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/06/2013, 15h09
  2. Remplir une matrice de n lignes et m colonnes
    Par bm1990 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 04/03/2013, 12h50
  3. Erreur, ecriture d'une matrice dans un fichier
    Par Lorddolf dans le forum MATLAB
    Réponses: 7
    Dernier message: 12/07/2010, 22h19
  4. Réponses: 7
    Dernier message: 19/09/2008, 12h10
  5. Crée une matrice de n ligne et de m colonne
    Par aymang dans le forum WinDev
    Réponses: 1
    Dernier message: 24/05/2008, 15h25

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