Matlab définition d'une fonction "PGI_hexapode"
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Matlab définition d'une fonction "PGI_hexapode"



  1. #1
    invite274e2619

    Matlab définition d'une fonction "PGI_hexapode"


    ------

    Bonjour,


    Pour résumer , j'utilise le code MATLAB d'une thèse de master sur un hexapode robotique .Or le code présente un problème , il y présente une fonction qui n'est pas définie ( la fonction "PGI_hexapode"), Le code de cette fonction n'est pas mentionné dans le mémoire .J'ai essayé de joindre le rédacteur de la thèse , mais il n'est plus joignable ( la thèse date de 2006)

    Voici l'erreur que j'ai
    Code:
    Undefined function or variable 'PGI_hexapode'.
    La fonction "PGI_hexapode" n'est que sur une ligne du code . Celle-là
    Code:
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    Pouvez-vous m'aider car ce code permet de faire le bon choix des servos .Ce qui est très important car je ne dois pas me tromper sur ça .
    Merci


    Voici le code en intégralité
    Code:
    clear all; clc; close all; digits(25);
    %-------------------------------%
    % Initialisation des parametres
    %-------------------------------%
    % Force de contact au pattes
    syms NAvGx NAvGy NAvGz real ;
    NAvG = [NAvGx; NAvGy; NAvGz];
    syms NCeDx NCeDy NCeDz real ;
    NCeD = [NCeDx; NCeDy; NCeDz];
    syms NArGx NArGy NArGz real ;
    NArG = [NArGx; NArGy; NArGz];
    %-------------------------------%
    %-------------------------------%
    % Reaction corps-coxa
    syms RBCAvGx RBCAvGy RBCAvGz real;
    RBCAvG = [RBCAvGx; RBCAvGy; RBCAvGz];
    syms RBCCeDx RBCCeDy RBCCeDz real;
    RBCCeD = [RBCCeDx; RBCCeDy; RBCCeDz];
    syms RBCArGx RBCArGy RBCArGz real;
    RBCArG = [RBCArGx; RBCArGy; RBCArGz];
    syms MBCAvGx MBCAvGy MBCAvGz real;
    MBCAvG = [MBCAvGx; MBCAvGy; MBCAvGz];
    syms MBCCeDx MBCCeDy MBCCeDz real;
    MBCCeD = [MBCCeDx; MBCCeDy; MBCCeDz];
    syms MBCArGx MBCArGy MBCArGz real;
    MBCArG = [MBCArGx; MBCArGy; MBCArGz];
    %-------------------------------%
    % Reaction femur-tibia
    syms RFTAvGx RFTAvGy RFTAvGz real;
    RFTAvG = [RFTAvGx; RFTAvGy; RFTAvGz];
    syms RFTCeDx RFTCeDy RFTCeDz real;
    RFTCeD = [RFTCeDx; RFTCeDy; RFTCeDz];
    syms RFTArGx RFTArGy RFTArGz real;
    RFTArG = [RFTArGx; RFTArGy; RFTArGz];
    syms MFTAvGx MFTAvGy MFTAvGz real;
     
    MFTAvG = [MFTAvGx; MFTAvGy; MFTAvGz];
    syms MFTCeDx MFTCeDy MFTCeDz real;
    MFTCeD = [MFTCeDx; MFTCeDy; MFTCeDz];
    syms MFTArGx MFTArGy MFTArGz real;
    MFTArG = [MFTArGx; MFTArGy; MFTArGz];
    %-------------------------------%
    % Reaction coxa-femur
    syms RCFAvGx RCFAvGy RCFAvGz real ;
    RCFAvG = [RCFAvGx; RCFAvGy; RCFAvGz];
    syms RCFCeDx RCFCeDy RCFCeDz real;
    RCFCeD = [RCFCeDx; RCFCeDy; RCFCeDz];
    syms RCFArGx RCFArGy RCFArGz real;
    RCFArG = [RCFArGx; RCFArGy; RCFArGz];
    syms MCFAvGx MCFAvGy MCFAvGz real;
    MCFAvG = [MCFAvGx; MCFAvGy; MCFAvGz];
    syms MCFCeDx MCFCeDy MCFCeDz real;
    MCFCeD = [MCFCeDx; MCFCeDy; MCFCeDz];
    syms MCFArGx MCFArGy MCFArGz real;
    MCFArG = [MCFArGx; MCFArGy; MCFArGz];
    %-------------------------------%
    % PGI
    %-------------------------------%
    g = 9.806E-3;
    prec = [eps;eps;eps].*rand(3,1);
    % Bras de levier en module des longueurs
    a = [0,80,100];
    b = [0,0,0];
    alpha = [pi/2,0,0];
    for o = 1:3
    HD(:,:,o) = [a;b;alpha];
    end
     
    % Position des centre de masse dans les repere des membrures
    oCDMcorps = [0;0;0];
    %oCDMtibia = [23;0;0];
    oCDMtibia = [50;0;0];
    oCDMfemur = [40;0;0];
    oCDMcoxa = [0;0;0];
    dRtibia(:,:) = [a(3);b(3);0];
    dRfemur = [a(2);b(2);0];
    dRcoxa = [a(1);b(1);0];
    dRcorps = [106,0,-106;45,-118,45;0,0,0];
    %-------------------------------%
    % PGI_hexapode
    %-------------------------------%
    % Position des extremite des pattes
    cas =1;
    if cas == 1 % Orthogonal
    pos = [106,0,-106;125,-198,125;-100,-100,-100];
     
    elseif cas == 2 % extreme ortho
    pos = dRcorps + [0,0,0;150.71,-150.71,150.71;-70.711,-70.711,-70.711];
    elseif cas == 3 % extreme total
    pos = dRcorps + [106,0,-106;106.57,-150.71,106.57;-70.711,-70.711,-70.711];
    end
     
    %-------------------------------%
    Qcorps = eye(3); % Orientation du corps
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    mTibia = 47;
    mFemur = 62;
    mCoxa = 75;
    mCorps = 580 + 413;
    mtot = 6*(mTibia+mFemur+mCoxa)+mCorps
    Wcoxa = Qcorps*[0;0;-mCoxa*g];
    Wfemur = Qcorps*[0;0;-mFemur*g];
    Wtibia = Qcorps*[0;0;-mTibia*g];
    Wcorps = Qcorps*[0;0;-mCorps*g];
    Wtot = Wcorps + 6*(Wcoxa+Wfemur+Wtibia);
    %-------------------------------%
    % Position des centre de masse dans le repere global
    LBcdmCAvG = Qcorps*dRcorps(:,1);
    LBcdmCCeD = Qcorps*dRcorps(:,2);
    LBcdmCArG = Qcorps*dRcorps(:,3);
    % Femur
    LCFcdmAvG = Phex(:,:,2,1)*oCDMfemur;
    LCFcdmCeD = Phex(:,:,2,2)*oCDMfemur;
    LCFcdmArG = Phex(:,:,2,3)*oCDMfemur;
    LFcdmTAvG = Phex(:,:,2,1)*(dRfemur-oCDMfemur);
    LFcdmTCeD = Phex(:,:,2,2)*(dRfemur-oCDMfemur);
    LFcdmTArG = Phex(:,:,2,3)*(dRfemur-oCDMfemur);
    LFAvG = Phex(:,:,2,1)*dRfemur;
    LFCeD = Phex(:,:,2,2)*dRfemur;
    LFArG = Phex(:,:,2,3)*dRfemur;
    % Tibia
     
    LFTcdmAvG = Phex(:,:,3,1)*oCDMtibia;
    LFTcdmCeD = Phex(:,:,3,2)*oCDMtibia;
    LFTcdmArG = Phex(:,:,3,3)*oCDMtibia;
    LTcdmNAvG = Phex(:,:,3,1)*(dRtibia-oCDMtibia);
    LTcdmNCeD = Phex(:,:,3,2)*(dRtibia-oCDMtibia);
    LTcdmNArG = Phex(:,:,3,3)*(dRtibia-oCDMtibia);
    LTAvG = Phex(:,:,3,1)*(dRtibia);
    LTCeD = Phex(:,:,3,2)*(dRtibia);
    LTArG = Phex(:,:,3,3)*(dRtibia);
    %-------------------------------%
    % Systeme d’equation
    %-------------------------------%
    % Globale
    %-------------------------------%
    % Force sur dirrection Z seulement
    NAvG(1:2) = [0;0];
    NCeD(1:2) = [0;0];
    NArG(1:2) = [0;0];
    RBCAvG(1:2) = [0;0];
    RBCCeD(1:2) = [0;0];
    RBCArG(1:2) = [0;0];
    RCFAvG(1:2) = [0;0];
    RCFCeD(1:2) = [0;0];
    RCFArG(1:2) = [0;0];
    RFTAvG(1:2) = [0;0];
    RFTCeD(1:2) = [0;0];
    RFTArG(1:2) = [0;0];
    % Moment en X et Y seulement
    MBCAvG(3) = 0;
     
    MBCCeD(3) = 0;
    MBCArG(3) = 0;
    MCFAvG(3) = 0;
    MCFCeD(3) = 0;
    MCFArG(3) = 0;
    MFTAvG(3) = 0;
    MFTCeD(3) = 0;
    MFTArG(3) = 0;
    % Contraintes globales
    SFGLOB = (Wcorps + 6*(Wcoxa + Wfemur + Wtibia) + NAvG + NCeD + NArG);
    SMGLOB = (cross(LBcdmCAvG+LFAvG+LTAvG,NAvG) + cross(LBcdmCCeD+LFCeD+LTCeD,NCeD) + cross(LBcdmCArG+LFArG+LTArG,NArG) + cross(LBcdmCAvG,Wcoxa) + cross(LBcdmCCeD,Wcoxa) + cross(LBcdmCArG,Wcoxa) + cross(LBcdmCAvG+LCFcdmAvG,Wfemur) + cross(LBcdmCCeD+LCFcdmCeD,Wfemur) + cross(LBcdmCArG+LCFcdmArG,Wfemur) + cross(LBcdmCAvG+LFAvG+LFTcdmAvG,Wtibia) + cross(LBcdmCCeD+LFCeD+LFTcdmCeD,Wtibia) + cross(LBcdmCArG+LFArG+LFTcdmArG,Wtibia));
    % Resolution pour force de contact en Z
    n = solve(SFGLOB(3),SMGLOB(1),SMGLOB(2));
    NAvGz = eval(n.NAvGz);
    NCeDz = eval(n.NCeDz);
    NArGz = eval(n.NArGz);
    check = NAvGz+NCeDz+NArGz;
    %-------------------------------------------------------------------%
    % Autres equations de contrainte interne
    % Corps B
    %-------------------------------%
    % Somme force
    SFB = RBCAvG + RBCCeD + RBCArG + Wcorps + 3*(Wcoxa + Wfemur + Wtibia) + prec;
    % Somme moment (bras de levier au cdm)
    SMB = (cross(LBcdmCAvG,RBCAvG) + cross(LBcdmCCeD,RBCCeD) + cross(LBcdmCArG,RBCArG) + MBCAvG + MBCCeD + MBCArG) + prec;
    %-------------------------------%
    % Patte
    %-------------------------------%
    % Coxa C
    % Somme force
    SFCAvG = (-RBCAvG + RCFAvG + Wcoxa) + prec;
    SFCCeD = (-RBCCeD + RCFCeD + Wcoxa) + prec;
    SFCArG = (-RBCArG + RCFArG + Wcoxa) + prec;
    % Somme moment (bras de levier au cdm)
    SMCAvG = (-MBCAvG + MCFAvG) + prec;
    SMCCeD = (-MBCCeD + MCFCeD) + prec;
    SMCArG = (-MBCArG + MCFArG) + prec;
    %-------------------------------%
    % Femur F
    % Somme force
    SFFAvG = (-RCFAvG + RFTAvG + Wfemur) + prec;
    SFFCeD = (-RCFCeD + RFTCeD + Wfemur) + prec;
    SFFArG = (-RCFArG + RFTArG + Wfemur) + prec;
    % Somme moment (bras de levier au cdm)
    SMFAvG = (cross(-LCFcdmAvG,-RCFAvG) + cross(LFcdmTAvG,RFTAvG) - MCFAvG + MFTAvG) + prec;
    SMFCeD = (cross(-LCFcdmCeD,-RCFCeD) + cross(LFcdmTCeD,RFTCeD) - MCFCeD + MFTCeD) + prec;
    SMFArG = (cross(-LCFcdmArG,-RCFArG) + cross(LFcdmTArG,RFTArG) - MCFArG + MFTArG) + prec;
    %-------------------------------%
    % Tibia T
    % Somme force
    SFTAvG = (-RFTAvG + NAvG + Wtibia) + prec;
    SFTCeD = (-RFTCeD + NCeD + Wtibia) + prec;
    SFTArG = (-RFTArG + NArG + Wtibia) + prec;
    % Somme moments (bras de levier au cdm)
    SMTAvG = (cross(-LFTcdmAvG,-RFTAvG) - MFTAvG + cross(LTcdmNAvG,NAvG))+ prec;
    SMTCeD = (cross(-LFTcdmCeD,-RFTCeD) - MFTCeD + cross(LTcdmNCeD,NCeD))+ prec;
    SMTArG = (cross(-LFTcdmArG,-RFTArG) - MFTArG + cross(LTcdmNArG,NArG))+ prec;
    %-------------------------------%
    % Resolution
    %-------------------------------%
    sol = solve(SFB(3),SMB(1),SMB(2),SFCAvG(3),SMCAvG(1),SMCAvG(2),SFFAvG(3),SMFAvG(1),SMFAvG(2),SFTAvG(3),SMTAvG(1),SMTAvG(2),SFCCeD(3),SMCCeD(1),SMCCeD(2),SFFCeD(3),SMFCeD(1),SMFCeD(2),SFTCeD(3),SMTCeD(1),SMTCeD(2),SFCArG(3),SMCArG(1),SMCArG(2),SFFArG(3),SMFArG(1),SMFArG(2),SFTArG(3),SMTArG(1),SMTArG(2));
    NAvGz = eval(sol.NAvGz);
    NCeDz = eval(sol.NCeDz);
    NArGz = eval(sol.NArGz);
    check = NAvGz+NCeDz+NArGz;
    MBCAvGx = eval(sol.MBCArGx);
    MBCCeDx = eval(sol.MBCCeDx);
    MBCArGx = eval(sol.MBCAvGx);
    MBCArGy = eval(sol.MBCArGy);
    MBCCeDy = eval(sol.MBCCeDy);
    MBCArGy = eval(sol.MBCAvGy);
    MCFAvGx = eval(sol.MCFArGx);
    MCFCeDx = eval(sol.MCFCeDx);
    MCFArGx = eval(sol.MCFAvGx);
    MCFAvGy = eval(sol.MCFArGy);
    MCFCeDy = eval(sol.MCFCeDy);
    MCFArGy = eval(sol.MCFAvGy);
    MFTAvGx = eval(sol.MFTArGx);
    MFTCeDx = eval(sol.MFTCeDx);
    MFTArGx = eval(sol.MFTAvGx);
    MFTAvGy = eval(sol.MFTAvGy);
    MFTCeDy = eval(sol.MFTCeDy);
    MFTArGy = eval(sol.MFTArGy);
    RBCArGz = eval(sol.RBCArGz);
    RBCCeDz = eval(sol.RBCCeDz);
    RBCAvGz = eval(sol.RBCAvGz);
    RCFAvGz = eval(sol.RCFAvGz);
    RCFCeDz = eval(sol.RCFCeDz);
    RCFArGz = eval(sol.RCFArGz);
    RFTAvGz = eval(sol.RFTAvGz);
    RFTCeDz = eval(sol.RFTCeDz);
    RFTArGz = eval(sol.RFTArGz);
    MCFAvG_patte = Phex(:,:,2,1)'*MCFAvG;
    subs(MCFAvG_patte)
    MCFCeD_patte = Phex(:,:,2,2)'*MCFCeD;
    subs(MCFCeD_patte)
    MCFArG_patte = Phex(:,:,2,3)'*MCFArG;
    subs(MCFArG_patte)
    %-------------------------------%
    affichage = 1;
    if affichage == 1
    figure;
    hold on;
    plot3([LBcdmCAvG(1),LBcdmCCeD(1),LBcdmCArG(1),LBcdmCAvG(1)],[LBcdmCAvG(2),LBcdmCCeD(2),LBcdmCArG(2),LBcdmCAvG(2)],[LBcdmCAvG(3),LBcdmCCeD(3),LBcdmCArG(3),LBcdmCAvG(3)],'k-');
    plot3([0, LBcdmCAvG(1), LBcdmCAvG(1)+LFAvG(1), LBcdmCAvG(1)+LFAvG(1)+LTAvG(1)],[0, LBcdmCAvG(2), LBcdmCAvG(2)+LFAvG(2), LBcdmCAvG(2)+LFAvG(2)+LTAvG(2)],[0, LBcdmCAvG(3), LBcdmCAvG(3)+LFAvG(3), LBcdmCAvG(3)+LFAvG(3)+LTAvG(3)],'o-b');
    plot3([0, LBcdmCCeD(1), LBcdmCCeD(1)+LFCeD(1), LBcdmCCeD(1)+LFCeD(1)+LTCeD(1)],[0, LBcdmCCeD(2), LBcdmCCeD(2)+LFCeD(2), LBcdmCCeD(2)+LFCeD(2)+LTCeD(2)],[0, LBcdmCCeD(3), LBcdmCCeD(3)+LFCeD(3), LBcdmCCeD(3)+LFCeD(3)+LTCeD(3)],'o-r');
    plot3([0, LBcdmCArG(1), LBcdmCArG(1)+LFArG(1), LBcdmCArG(1)+LFArG(1)+LTArG(1)],[0, LBcdmCArG(2), LBcdmCArG(2)+LFArG(2), LBcdmCArG(2)+LFArG(2)+LTArG(2)],[0, LBcdmCArG(3), LBcdmCArG(3)+LFArG(3), LBcdmCArG(3)+LFArG(3)+LTArG(3)],'o-g');
    % Femur
    plot3(LBcdmCAvG(1)+LCFcdmAvG(1), LBcdmCAvG(2)+LCFcdmAvG(2),LBcdmCAvG(3)+LCFcdmAvG(3),'xk');
    plot3(LBcdmCCeD(1)+LCFcdmCeD(1), LBcdmCCeD(2)+LCFcdmCeD(2),LBcdmCCeD(3)+LCFcdmCeD(3),'xk');
    plot3(LBcdmCArG(1)+LCFcdmArG(1), LBcdmCArG(2)+LCFcdmArG(2),LBcdmCArG(3)+LCFcdmArG(3),'xk');
    % Tibia
    plot3(LBcdmCAvG(1)+LFAvG(1)+LFTcdmAvG(1),LBcdmCAvG(2)+LFAvG(2)+LFTcdmAvG(2), LBcdmCAvG(3)+LFAvG(3)+LFTcdmAvG(3),'xk');
    plot3(LBcdmCCeD(1)+LFCeD(1)+LFTcdmCeD(1),LBcdmCCeD(2)+LFCeD(2)+LFTcdmCeD(2),LBcdmCCeD(3)+LFCeD(3)+LFTcdmCeD(3),'xk');
    plot3(LBcdmCArG(1)+LFArG(1)+LFTcdmArG(1),LBcdmCArG(2)+LFArG(2)+LFTcdmArG(2),LBcdmCArG(3)+LFArG(3)+LFTcdmArG(3),'xk');
    xlabel('X'); ylabel('Y'); zlabel('Z');
    axis equal;
    % view(3)
    view([0,0,180]);
    % Affichage du cercle de contact
    [cC,r] = cercle3pts(pos(1:2,:)');
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cC(1) + r*cos(t(o));
    y(o) = cC(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),'c-');
    plot3(cC(1),cC(2),pos(3,1),'c+');
    % Affichage du cercle d’ancrage
    [cA,r] = cercle3pts(dRcorps(1:2,:)');
    t = 0:0.01:2*pi+0.01;
    for o = 1:size(t,2)
    x(o) = cA(1) + r*cos(t(o));
    y(o) = cA(2) + r*sin(t(o));
    end
    plot3(x,y,ones(1,size(x,2))*pos(3,1),'m-');
    plot3(cA(1),cA(2),pos(3,1),'m+');
    distCentre = norm(cA-cC)
    end

    -----

  2. #2
    Antoane
    Responsable technique

    Re : URGENT : Matlab définition d'une fonction "PGI_hexapode"

    Bonjour,

    impossible de t'aider, comme indiqué ici : http://www.developpez.net/forums/d16...s-code-erreur/
    Peut-être que la fonction est très courte et triviale :
    Code:
    function [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    art=pos;
    Qhex=pi*length(HD); 
    Phex=[dRcorps,Qcorps];
    end
    mais si ca se trouve la fonction fait mil lignes...
    Donc c'est mort.

    Tu pourras éventuellement reconstruire la fonction en comprennant à fond le code, son fonctionnement et donc ce que doit faire cette fonction, mais autant, dans ce cas, tout reprendre à zéro

    PS : merci d'éviter de crier "urgent" dans le titre de la discussion, ca ne fait qu'irriter tes lecteurs.
    Dernière modification par Antoane ; 03/09/2016 à 11h27.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  3. #3
    invite274e2619

    Re : Matlab définition d'une fonction "PGI_hexapode"

    Bonjours

    merci pour votre réponse .Est-ce que vous pouvez m'expliquer cette fonction s'il vous plait . est ce que c'est une matrice ?
    Code:
    [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qcorps);
    est ce que cela veut dire cela
    Code:
    art=pos;
    Qhex=pi*length(HD); 
    Phex=[dRcorps,Qcorps];
    j'ai HD une matrice 3*3 donc c'est quoi length(HD) ?

    j'ai pour dRcorps = [106,0,-106;45,-118,45;0,0,0]; et Qcorps=[1,0,0;0,1,0;0,0,1]; donc Phex=[dRcorps,Qcorps];

  4. #4
    Antoane
    Responsable technique

    Re : Matlab définition d'une fonction "PGI_hexapode"

    Il n'y a à peu près qu'une ou deux personnes sur terre qui savent exactement ce que fait la fonction [art,Qhex,Phex] = PGI_hexapode(pos,HD,dRcorps,Qc orps); : le gars qui l'a écrite et son tuteur.

    Comme te l'a déjà été dit : tu ne pourras pas trouver le contenu de cette fonction par toi même ou par qui que ce soit d'autre qui ne soit pas l'auteur de la thèse où tu as récupéré le code global.
    Tu pourrais éventuellement deviner quelques trucs, mais cela demanderait déjà que tu comprennes le fonctionnement précis du reste de code que tu as récupéré.

    Le morceau de code que j'ai donné n'a aucun sens, oublie-le.

    Une fonction n'est pas une matrice.
    - Une fonction c'est un truc auquel tu donne un machin et qui te rend un bidule ;
    - Une matrice, c'est comme un nombre.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  5. A voir en vidéo sur Futura
  6. #5
    invite274e2619

    Re : Matlab définition d'une fonction "PGI_hexapode"

    Merci pour votre réponse ,

    je comprends à peut près l'intégralité du code car en réalité ci je ne l'ai pas montré , j'ai les équations qui composent la base du code .Ce code me permettra de savoir qu'elle est le couple nécessaire pour des servomoteurs !

    J'aimerais savoir Phex est une matrice de combien de ligne et colonne sachant que j'ai ça dans le code
    Phex(:,:,2,1) Phex(:,:,2,2) Phex(:,:,2,3) Phex(:,:,2,3) Phex(:,:,3,1) Phex(:,:,3,2) Phex(:,:,3,3)

    Phex(:,:,2,1) est l'extrait de la matrice composé de la ligne 2 et de la colonne 1 de Phex ?? soit juste un nombre (une constante ) ??



    si j'ai Position du centre de masse =Phex(:,:,2,2)*Centre de masse c'est koi Phex(:,:,2,2) ??

  7. #6
    Antoane
    Responsable technique

    Re : Matlab définition d'une fonction "PGI_hexapode"

    Bonjour,

    - si a est un vecteur, il faut un indice pour désigner chaque élément du vecteur : a(1), a(2), ... a(33)...
    - si a est une matrice, il faut deux indices pour désigner chaque élément de a : a(1, 1), a(2, 5), ... a(33, 45)...
    - a est alors un tableau, et on met un nombre dans chaque case du tableau. Mais on peut aussi mettre un vecteur dans chaque case du tableau. Il faut alors 3 indices pour désigner chaque élément : 2 pour dire de quel case du tableau (= de quel vecteur) on parle, et un pour dire de quel élément du vecteur on parle. dans ce cas, tu accède à un certain élément du tableau comme ceci : a(1,6,45) ou a(6, 6, 9), etc.
    - Mais on pourrait aussi mettre une, matrice dans chaque case du tableau, et il faudrait alors indices : deux pour savoir de quelle case du tableau on parle, et deux pour savoir de quel éléement de la matrice dans ce tableau on parle. Alors : a(1,8,4,3). Phex est une variable de ce type.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. [MATLAB] définition de la fct de tranfert
    Par invitee2f3230c dans le forum Logiciel - Software - Open Source
    Réponses: 22
    Dernier message: 10/03/2010, 16h30
  2. Matlab: définition et visualisation de fonction 3D
    Par invitec2c3c226 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 29/01/2010, 19h17
  3. Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??
    Par inviteac36b108 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 04/01/2010, 08h16
  4. domaine de définition matlab
    Par jenoyend dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 29/12/2007, 15h23
  5. mex fonction matlab/c
    Par invite8ff54149 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 18/05/2006, 14h48