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 :

interprétation code matlab[2]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 64
    Par défaut interprétation code matlab[2]
    Bonjour,
    déja, merci à tous ceux qui m'aide pour comprendre mes bouts de code en Matlab.

    mais j'ai encore besoin de vous:
    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
    function Tr = snbasis(VG,VF,VWG,VWF,Affine,fwhm,cutoff,nits,reg)
    % 3D Basis Function Normalization
    % FORMAT Tr = snbasis(VG,VF,VWG,VWF,Affine,fwhm,cutoff,nits,reg)
    % VG        - Template volumes (see spm_vol).
    % VF        - Volume to normalize.
    % VWG       - weighting Volume - for template.
    % VWF       - weighting Volume - for object.
    % Affine    - A 4x4 transformation (in voxel space).
    % fwhm      - smoothness of images.
    % cutoff    - frequency cutoff of basis functions.
    % nits      - number of iterations.
    % reg       - regularisation.
    % Tr - Discrete cosine transform of the warps in X, Y & Z.
    %
    % snbasis performs a spatial normalization based upon a 3D
    % discrete cosine transform.
    %
    %______________________________________________________________________
     
    fwhm    = [fwhm 30];
     
    % Number of basis functions for x, y & z
    %-----------------------------------------------------------------------
    tmp  = sqrt(sum(VG(1).mat(1:3,1:3).^2));
    k    = max(round((VG(1).dim(1:3).*tmp)/cutoff),[1 1 1]);
     
    % Scaling is to improve stability.
    %-----------------------------------------------------------------------
    stabilise = 8;   % on fait uen DCT(transformée en cosinus discrète)
    basX = spm_dctmtx(VG(1).dim(1),k(1))*stabilise;
    basY = spm_dctmtx(VG(1).dim(2),k(2))*stabilise;
    basZ = spm_dctmtx(VG(1).dim(3),k(3))*stabilise;
                      % j'obtiens les dérivées de la DCT
    dbasX = spm_dctmtx(VG(1).dim(1),k(1),'diff')*stabilise;
    dbasY = spm_dctmtx(VG(1).dim(2),k(2),'diff')*stabilise;
    dbasZ = spm_dctmtx(VG(1).dim(3),k(3),'diff')*stabilise;
     
    vx1 = sqrt(sum(VG(1).mat(1:3,1:3).^2));
    vx2 = vx1;
    kx = (pi*((1:k(1))'-1)/VG(1).dim(1)/vx1(1)).^2; ox=ones(k(1),1);%??
    ky = (pi*((1:k(2))'-1)/VG(1).dim(2)/vx1(2)).^2; oy=ones(k(2),1);%??
    kz = (pi*((1:k(3))'-1)/VG(1).dim(3)/vx1(3)).^2; oz=ones(k(3),1);%??
     
    if 1,%???
            % BENDING ENERGY REGULARIZATION
            % Estimate a suitable sparse diagonal inverse covariance matrix for
            % the parameters (IC0).
            %-----------------------------------------------------------------------
    	IC0 = (1*kron(kz.^2,kron(ky.^0,kx.^0)) +...
    	       1*kron(kz.^0,kron(ky.^2,kx.^0)) +...
    	       1*kron(kz.^0,kron(ky.^0,kx.^2)) +...
    	       2*kron(kz.^1,kron(ky.^1,kx.^0)) +...
    	       2*kron(kz.^1,kron(ky.^0,kx.^1)) +...
    	       2*kron(kz.^0,kron(ky.^1,kx.^1)) );
            IC0 = reg*IC0*stabilise^6;
            IC0 = [IC0*vx2(1)^4 ; IC0*vx2(2)^4 ; IC0*vx2(3)^4 ; zeros(prod(size(VG))*4,1)];
            IC0 = sparse(1:length(IC0),1:length(IC0),IC0,length(IC0),length(IC0));
    else
            % MEMBRANE ENERGY (LAPLACIAN) REGULARIZATION
            %-----------------------------------------------------------------------
            IC0 = kron(kron(oz,oy),kx) + kron(kron(oz,ky),ox) + kron(kron(kz,oy),ox);
            IC0 = reg*IC0*stabilise^6;
            IC0 = [IC0*vx2(1)^2 ; IC0*vx2(2)^2 ; IC0*vx2(3)^2 ; zeros(prod(size(VG))*4,1)];
            IC0 = sparse(1:length(IC0),1:length(IC0),IC0,length(IC0),length(IC0));
    end;
    donc si c'est possible:
    1) de me corriger si j'ai faux(ou donner plus de précisions) su mes commentaires(les miens en français)
    2)le calcul de kx,ky,kz, ox,oy,oz ne n'en comprends pas le but dans le cadre d'une DCT
    3) le if 1 ?????qu'est ce qui doit être égal à 1??

    Merci bcp pour votre aide

  2. #2
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    Citation Envoyé par arni63 Voir le message
    3) le if 1 ?????qu'est ce qui doit être égal à 1??

    le if 1 est utilisé par les gens qui codent mal et rapidement : quick and dirty comme on dit dans le monde du développement.
    en gros la condition sera toujours vraie et MATLAB évaluera toujours les lignes suivies par le if 1. Les gens qui utilisent ça c'est en gros pour débugger rapidement et initialiser des paramètres rapidement. Une fois leur code abouti, ils enlèvent le if 1 et ne laissent que les lignes qui suivent le else.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 64
    Par défaut
    dans mon cas, je ne pense pas que la personne va enlever le IF 1,
    donc on ne rentrera jamais dans le else, ces les lignes qui suivent le if qui seront toujours évaluées???

  4. #4
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    Citation Envoyé par arni63 Voir le message
    ces les lignes qui suivent le if qui seront toujours évaluées???
    oui exemple pour le démontrer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function test
    if 1
    disp('je suis dans le if')
    else
    disp('je suis dans le else')
    end

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 64
    Par défaut
    Merci bcp tug83.
    au moins j'aurais compris un truc.
    j'essaye toujours de comprendre le reste, mais n'hésitez pas à m'aider.
    Merci

Discussions similaires

  1. interprétation code matlab
    Par arni63 dans le forum MATLAB
    Réponses: 10
    Dernier message: 27/07/2010, 17h06
  2. interprétation code matlab
    Par arni63 dans le forum MATLAB
    Réponses: 8
    Dernier message: 26/07/2010, 12h25
  3. interprétation code matlab
    Par arni63 dans le forum MATLAB
    Réponses: 4
    Dernier message: 23/07/2010, 14h06
  4. Utilisation du code MATLAB dans environnement .NET
    Par SOPRA-Eherve dans le forum MATLAB
    Réponses: 5
    Dernier message: 28/11/2006, 13h43
  5. DCT & code matlab
    Par meera dans le forum Images
    Réponses: 3
    Dernier message: 19/07/2006, 17h02

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