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 :

Demande conseils pour petit programme


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Demande conseils pour petit programme
    Bonsoir à tous,

    Je suis désolé de vous déranger avec mes petits problèmes mais là je sèche complètement sur mon problème

    J'ai un devoir maison et il ne me reste plus qu'une petite partie à traiter mais j'y arrive pas. Je suis pas une lumière en programmation... Je me suis donc dis que vous pourriez m'aider

    En gros voilà la consigne:

    Ecrire un produit qui calcule le produit matrice-vecteur (jusque là tout va bien) SANS UTILISER LA COMMANDE " * " (là vous l'aurez compris rien ne va plus...)
    Ecrire un programme qui calcule la transposée d'une matrice et tester au passage la commande " ' " (les comparer en utilisant le chronomètre tic toc).

    J'utilise matlab depuis 1 semaine et je vous assure que c'est pas évident...
    Si quelqu'un aurait l'extreme amabilité de m'aider avec ça en y ajoutant le plus d'explication possible ça serait vraiment sympa.

    Merci de m'avoir lu jusqu'au bout.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Montre nous ce que tu as déjà codé (même si c'est faux)
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    quand tu entend par ne pas utilisé * tu veux dire simplement ne pas ecrire
    Mat*vect1=vect2 ??
    ou bien les produits internes sont aussi à supprimer?


    le but de l'exercice est de recoder la multiplication. le plus simple c'est de suivre les étapes de la multiplication faite à la main

    la première case de ton vecteur résultat c'est la somme des produits terme à terme entre la première ligne de ta matrice et ton vecteur "source"

    ça donnerais ça en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    vect_resultat=zeros(n,1)
    pour i=1:n (n dimension de ton vecteur)
     
       pour j=1:n
     
         vect_resultat(i)=vect_resultat(i)+mat(i,j)*vect_source(j);
     
       fin
    fin
    par contre il faudra bien faire attention au dimension de ta matrice et de ton vecteur , bien vérifié que la multiplication est possible

    si tu dois en plus supprimer les produit en interne il te suffit de remplacer les produit par une addition.


    pour la transposé, dans un premier temps alloue une matrice de même taille que la matrice à transposée.
    ensuite tu parcours ta matrice de départ et tu copies chaque élément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mat_fin(j,i)=Mat_depart(i,j);
    tu recodes en fait l'opérateur '
    et normalement c'est la que tu te rend compte que matlab est assez lent quand tu utilise des boucles

  4. #4
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Salut,

    Il me semble en effet que tu dois juste re-coder le produit matriciel. Tu as donc le droit d'utiliser l'addition et la multiplication, ainsi que toutes les codes liés à la programmation !

    gpcbitnik38 t'a donné toutes les billes. Je me permets de rajouter que le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [N_Lignes N_Colonnes] = size(M)
    te permets de récupérer le nombre de lignes et le nombre de colonnes d'une matrice. Par ailleurs, pour accéder à la ligne L et à la colonne C d'une matrice, tu écris Enfin, une boucle s'écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    M = rand(4,1); % crée une matrice aléatoire ayant 4 lignes et une colonne
    [N_Lignes N_Colonnes] = size(M)
    for L=1:N_Lignes
        M(L,1) % Affiche la L-ième ligne et 1-ère colonne de M
    end
    N'hésites pas à poster ton code ici, même s'il est faux : cela nous permettra de mieux te conseiller pour progresser.

    Bon courage !

    Cordialement,

    ps: tu pourras trouver un tutoriel très détaillé sur matlab en général ici. Si tu cherches une information vraiment très basique (comment écrire une boucle, comment créer une matrice, comment affecter une valeur sur une matrice, etc.), tu pourras y trouver ton bonheur.
    Je ne réponds pas aux MP techniques. Le forum est là pour ça.
    La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
    Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
    Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3

Discussions similaires

  1. Réponses: 20
    Dernier message: 31/08/2006, 20h31
  2. Réponses: 2
    Dernier message: 27/04/2006, 08h26
  3. Demande conseils pour création application
    Par Cryolite dans le forum Oracle
    Réponses: 2
    Dernier message: 06/04/2006, 19h04
  4. HELP! Demande aide pour petit site à réaliser en ASP et JS
    Par itachi64 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/03/2006, 09h06
  5. Réponses: 2
    Dernier message: 11/03/2006, 19h34

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