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 :

Créer une fonction pour un vecteur quelconque


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Danemark

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2012
    Messages : 45
    Points : 44
    Points
    44
    Par défaut Créer une fonction pour un vecteur quelconque
    Bonsoir à tous;
    je sais comment créer une fonction MATLAB et l'appliquer sur des éléments, le problème est que je n'arrive pas à écrire une fonction pour l'appliquer à un vecteur quelconque,,,...
    les détails:

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    num_categ=0:10;
     nb_symb_total=0;
     for i=1:length(num_categ)
      nb_symb_total=nb_symb_total+sum(2^(num_categ(i)));
     end
     nb_symb_total
     % Calcule des probabilités de chaque catégorie
     for j=1:length(num_categ)
        prob(j)=(2.^(num_categ(j)))/nb_symb_total; 
     end
    prob=prob(11:-1:1)
     dict=huffmandict(num_categ,prob);
     for i=1:length(num_categ)
         dict{i,:};
     end
     dict 
     
     
    %% /////////////////////////////////////////////////////////////////////////
    % teste Codage DC
    v=[1];
    %% Extraire les numéro des catégories:
    for s=1:length(v)
        if (v(s)==0)
            extnum_categ(s)=0;
        else
            extnum_categ(s)=fix(log2(abs(v(s))))+1;
        end
    end
    extnum_categ
    %% Créations des vecteurs pour les catégories correspondants: 
     stockdc=1;
     index_stock=0;
     g=(2.^(extnum_categ))./2
     for s=1:length(v)
         % Créations des valeurs positifs
         valpositif=[];
         valnegatif=[];
         valpositif(1)=g(s);
        nbunajout=(2^(extnum_categ(s)-1));
        for i=2:nbunajout
           valpositif(i)=valpositif(i-1)+1; 
        end
        % Créations des valeurs négatifs
        for t=1:length(valpositif)
           valnegatif(t)=valpositif(length(valpositif)+1-t)*(-1);
        end
        %La Concaténation:
        concat=[];
        if (v(s)==0)
            concat=0;
        else
            for x=1:length(valpositif)
               concat(x)=valnegatif(x);
            end
            for y=length(valpositif)+1:(length(valpositif)*2)
                concat(y)=valpositif(y-length(valpositif));
            end
        end
        concat
        % Chercher la position du symbole dans la table DC:
        position=0;
        for o=1:length(concat)
           if (v(s)==concat(o))
               position=o;
           end
        end
        position
        %% Codage du symbole DC: codeHuffman categorie + code position
        code_categ=[];  % Initialisation  
        code_categ=[dict{extnum_categ(s)+1,2}]
        code_pos=[];    % Initialisation
        if (v(s)==0)
           code_pos=0;
        else
           code_pos=de2bi(position-1,extnum_categ(s),'left-msb');
        end
        code_pos
        code_symb_dc=[]
        for e=1:length(code_categ)
           code_symb_dc(e)=code_categ(e);
        end
        for f=length(code_categ)+1:(length(code_categ)+length(code_pos))
           code_symb_dc(f)=code_pos(f-length(code_categ)); 
        end
        code_symb_dc
        for h=stockdc:stockdc+length(code_symb_dc)-1
            JPEG_DC(h)=code_symb_dc(h-(index_stock));
        end
        stockdc=length(JPEG_DC)+1;
        index_stock=length(JPEG_DC);
    end
    JPEG_DC
    je veux résumer tous ce calcule dans une fonction par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function JPEG_DC=convdc(vect) % vect=vecteur quelconque
    Des idées !

    Merci à l'avance

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Salut,
    je ne saisi pas où se situe ton problème. Qu'est ce qui ne fonctionne pas lorsque tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function [JPEG_DC nb_symb_total dict extnum_categ concat code_symb_dc] =convdc(v)
    % ton code 
    % sans v=[1];
    end

Discussions similaires

  1. Créer une fonction pour éxecuter un package ..
    Par souhail72 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 14/02/2014, 16h14
  2. Créer une fonction pour filtrer un formulaire
    Par Le nettoyeur dans le forum Langage
    Réponses: 36
    Dernier message: 14/02/2013, 11h09
  3. Créer une fonction pour le max de jours d'un mois..
    Par kim mading dans le forum WinDev
    Réponses: 4
    Dernier message: 05/10/2012, 13h51
  4. Créer une fonction pour remplacer des caractères
    Par virtuadrack dans le forum C++
    Réponses: 4
    Dernier message: 11/09/2008, 14h52
  5. Créer une fonction pour un update avec phppgadmin
    Par Peewee766 dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 19/06/2008, 11h56

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