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 :

Utilisation Fichier .mat


Sujet :

MATLAB

  1. #1
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut Utilisation Fichier .mat
    Bonsoir
    je veux afficher les résultats de mon code Matlab vers un fichier .mat pour les réutiliser ultérieurement
    je sais pas comment utiliser les fichier .mat, est ce qu'il y a qq'un peut m'aider?

    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjours,

    Qu'est-ce que tu entends par "afficher"?
    Les fichiers .mat sont fait pour stocker des variables.

    Pour les utiliser:

  3. #3
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    je veux dire sauvegarder les résultats.voila le pb:
    j'ai un problème au niveau de la saturation de la mémoire.

    j'ai 3 parties dans mon programme; chacune contient des calcules lourds.
    je peux exécuter la partie 1 et puis je fais 'save' pour sauver les résultats.
    puis au début de la partie 2, je fais load des résultats de la partie 1.....


    comme ça est ce que l'utilisation de save et load peut être une solution pour résoudre le problème de la saturation de la mémoire?

  4. #4
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    par exemple si j'ai une matrice M comme résultats de la partie 1
    je dois alors mettre a la fin de la partie 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    save(nom fichier.mat, 'M');
    puis juste au debut de la partie 2 je dois mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    x=load(nom fichier.mat,  'M');
    est ce que c'est juste?
    a+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oui c'est juste, avec le nom du fichier entre guillemets comme M

  6. #6
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    mais ça ne résout pas encore le pb de saturation de la mémoire , j’obtiens encore l'erreur:
    ??? Out of memory. Type HELP MEMORY for your options.
    qu'est ce que vous me proposez?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Et pourrait-on savoir quel est le code qui produit cette erreur?

    Un peu de lecture: Out of memory. Type HELP MEMORY for your options.

  8. #8
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    bonjour

    oui j'ai bien lu ce FAQ. mais j'ai pas trouver une solution a mon pb.
    comme j'ai mentionner en haut, mon code contient des parties pour chaque partie j'ai des traitements sur mes vidéos.

    les résultats de traitement 1 vont être utiliser par le traitement2, les résultats de traitement 2 utiliser pour le traitement 3....

    juste au niveau de traitement 2 l’exécution s’arrête et l'erreur apparait.
    je sais pas comment je peux vous montrer le code car c très long.

    des idées SVP

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    Monter nous ton code.
    Sans ça, nous ne pourrons pas t'aider efficacement.

  10. #10
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    le code est le suivant:
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    clc;
    clear all;
    disp (' Creation de la structure du travail pour la reconnaissance d"actions en vidéo...')
    conf.calDir = 'C:\code\dataset\KTH' ;
    conf.dataDir = 'C:\data\' ;
    %conf.dataDir = 'data\' ;
    conf.numTrain = 1 ;
    conf.numTest = 2 ;
    conf.numClasses = 3;
    conf.numWords = 1000 ;
    conf.quantizer = 'kdtree' ;
    conf.svm.C = 10 ;
    conf.svm.solver = 'pegasos' ;
    conf.svm.biasMultiplier = 1 ;
    % PREFIX
    conf.prefix = 'baseline' ;
    % creation des fichiers .mat
    conf.vocabTPath = fullfile(conf.dataDir, [conf.prefix '-vocabT.mat']) ;
    conf.vocabSPath = fullfile(conf.dataDir, [conf.prefix '-vocabS.mat']) ;
    conf.BOWTPath = fullfile(conf.dataDir, [conf.prefix '-BOWTApp.mat']) ;
    conf.BOWSPath = fullfile(conf.dataDir, [conf.prefix '-BOWSApp.mat']) ;
    conf.histsTPath=fullfile(conf.dataDir, [conf.prefix '-BOWTT.mat']) ;
    conf.histsSPath=fullfile(conf.dataDir, [conf.prefix '-BOWTS.mat']) ;
    conf.modelPath = fullfile(conf.dataDir, [conf.prefix '-model.mat']) ;
    conf.TrajAppPath = fullfile(conf.dataDir, [conf.prefix 'trajectoriesApp']) ;
    conf.siftaccAppPath = fullfile(conf.dataDir, [conf.prefix '-siftaccApp']) ;
    conf.TrajtotPath = fullfile(conf.dataDir, [conf.prefix 'trajectories']) ;
    conf.siftacctotPath = fullfile(conf.dataDir, [conf.prefix '-siftacc']) ;
    % Model trained: model.mat
    conf.modelPath = fullfile(conf.dataDir, [conf.prefix '-model.mat']) ;
    conf.resultPath = fullfile(conf.dataDir, [conf.prefix '-result.mat']) ;
    % --------------------------------------------------------------------
    %                        création de la structure des classes
    % --------------------------------------------------------------------
    classes = dir(conf.calDir) ;
    classes = classes([classes.isdir]) ;
    classes = {classes(3:conf.numClasses+2).name};
    videos = {} ;
    videoClass = {} ;
    for ci = 1:length(classes)
        vids = dir(fullfile(conf.calDir, classes{ci}, '*.avi'))' ;
     
        vids = vl_colsubset(vids, conf.numTrain + conf.numTest) ;
        vids = cellfun(@(x)fullfile(classes{ci},x),{vids.name},'UniformOutput',false) ;
        videos = {videos{:}, vids{:}} ;
        videoClass{end+1} = ci * ones(1,length(vids)) ;
    end
    selTrain = find(mod(0:length(videos)-1, conf.numTrain+conf.numTest) < conf.numTrain) ;
    selTest = setdiff(1:length(videos), selTrain) ;
    videoClass = cat(2, videoClass{:}) ;
    model.classes = classes ;
    model.quantizer = conf.quantizer ;
    model.vocab = [] ;
    model.w = [] ;
    model.b = [] ;
    model.classify = @classify ;
    %------------------------ traitement------------------%
    disp('extraction des descripteurs de la base d"apprentissage: training...');
    selTrainFeats = vl_colsubset(selTrain,5*10) ;
    trajectoriesApp = {} ;
    siftaccApp= {};
    siftspatialApp={};
    X={};
    Y={};
    for ii = 1:length(selTrainFeats)
        video =fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X{ii} Y{ii}]= calcultrajectoires(video);
        close all;
        siftaccApp{ii}=calculsiftacc(video, X{ii} ,Y{ii} );
        siftspatialApp{ii}=siftspatial(video, X{ii} ,Y{ii});
    end
    disp('creartion de vocabulaire par kmeans pour la base d"apprentissage ...');
     
    %------------ traitement 1----------------------------------%
     
    siftaccAp=cat(1,siftaccApp{:});
    siftspaApp=cat(1, siftspatialApp{:});
    [dommy3 vocabSS]= k_means(siftspaApp, 300);
    [domy2  vocabS] = k_means(siftaccAp, 1000);
     
    %------------------------ traitement2----------------------------- %
    disp ('calcul des descripteurs pour toute la base...')
     
    nbp=0;
    for ii = 1:length(videos)
        length(videos)) ;
        video= fullfile(conf.calDir, videos{ii}) ;
        [ X{ii} Y{ii} ]= calcultrajectoires(video);
        close all;
        [n m]=size(X{ii});
        nbp=nbp+n*m;
        %code s'arrete iciiiiii:
        siftacc{ii}=calculsiftacc(video, X{ii} ,Y{ii} );
        siftspa{ii}=siftspatial(video, X{ii} ,Y{ii});
     
    end
    % --------------------------------------------------------------------
    %                                           traitement 3
    % --------------------------------------------------------------------
     
    BOWTT={};
    BOWTS={};
    BOWTSP={};
    for ii = 1:length(videos)
        [BOWTS{ii}] = calcVisualWordHist (siftacc{ii},vocabS);
        [BOWTSP{ii}] = calcVisualWordHist (siftspa{ii},vocabSS);
    end
    BOWTTM = cat(2, BOWTT{:}) ;
    BOWTSM = cat(2, BOWTS{:}) ;
    BOWTSPM = cat(2, BOWTSP{:}) ;
    save(conf.histsTPath, 'BOWTTM') ;
    save(conf.histsSPath, 'BOWTSM') ;
    BOW=[ BOWTSM ;BOWTSPM];
    l'erreur provient au cours de traitement de vidéo au niveau de l'instruction suivante: (ligne 93)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    siftacc{ii}=calculsiftacc(video, X{ii} ,Y{ii} );

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    Première remarque, pourquoi stocker les valeurs de X et Y dans des tableaux de cellules alors que tu n'en t'en sert qu'une seule fois ?

    Remplace [ X{ii} Y{ii} ]= calcultrajectoires(video); par [ X Y ]= calcultrajectoires(video); et X{ii} par X dans la suite du code (idem pour Y)

    Ensuite, à la fin du traitement 1, nettoie les variables devenues inutiles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clear siftaccApp siftspatialApp dommy3 domy2
    Dis nous si cela résout ton problème.

  12. #12
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    bonjour
    comment je fais ce changement alors que j'ai une boucle for??
    cette boucle va traiter tt mes vidéo, vidéo par vidéo. a la fin de cette boucle "siftaccApp" et "siftspatialApp" sont les résultats de traitement de tt ma base vidéo.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    for ii = 1:length(selTrainFeats)
     
        video =fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X{ii} Y{ii}]= calcultrajectoires(video);
        close all;
     
         siftaccApp{ii}=calculsiftacc(video, X{ii} ,Y{ii} );
         siftspatialApp{ii}=siftspatial(video, X{ii} ,Y{ii});
     
      end

  13. #13
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    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
    for ii = 1:length(selTrainFeats)
      
        video =fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X Y]= calcultrajectoires(video);
        close all;
       
         siftaccApp{ii}=calculsiftacc(video, X, Y);
         siftspatialApp{ii}=siftspatial(video, X, Y);
       
    end
    
    disp('creartion de vocabulaire par kmeans pour la base d"apprentissage ...');
    
    %------------ traitement 1----------------------------------%
    
    siftaccAp=cat(1,siftaccApp{:});
    siftspaApp=cat(1, siftspatialApp{:});
    [dommy3 vocabSS]= k_means(siftspaApp, 300);
    [domy2  vocabS] = k_means(siftaccAp, 1000);
    
    clear siftaccApp siftspatialApp dommy3 domy2

  14. #14
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    Bonsoir
    même avec cette correction j'obtiens la même erreur.

    l’exécution ne dépasse pas le premier traitement.
    je sais que mon calcule est lourd puisque je traite une base vidéo (chaque vidéo a peu prés 360 images), mais je peux pas changer le traitement. déjà le code fonctionne correctement avec seulement 20 images.

    aidez moi !

  15. #15
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    La technique est toujours la même. Il faut diminuer la quantité de mémoire nécessaire à chaque étape en divisant les tâches en sous-tâches :

    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
    for ii = 1:length(selTrainFeats)
     
        video = fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X Y] = calcultrajectoires(video);
        close all;
     
         siftaccApp{ii} = calculsiftacc(video, X, Y);
     
    end
     
    clear X Y
     
    siftaccAp = cat(1,siftaccApp{:});
    clear siftaccApp
     
    [domy2  vocabS] = k_means(siftaccAp, 1000);
    clear domy2 siftaccAp
     
    for ii = 1:length(selTrainFeats)
     
        video = fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X Y] = calcultrajectoires(video);
        close all;
     
        siftspatialApp{ii} = siftspatial(video, X, Y);
     
    end
     
    clear X Y
     
    siftspaApp = cat(1, siftspatialApp{:});
    clear siftspatialApp
     
    [dommy3 vocabSS] = k_means(siftspaApp, 300);
    clear siftspaApp dommy3
    Il faut que tu analyses chaque ligne de ton code à la main.
    Essaie d'évaluer la taille maximale de chaque variable (voir Comment déterminer approximativement la quantité de mémoire nécessaire pour le stockage d'une variable ?). Cela te donnera une idée de la quantité de mémoire (RAM+virtuelle) minimale nécessaire pour effectuer ton calcul.

    Sur quel type de machine travailles-tu ? 32bits ou 64bits ?
    Il serait peut être préférable d'envisager la migration du code sur une machine 64bits avec beaucoup de RAM.

  16. #16
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    BONSOIR
    Merci pour la reponse
    32 Bits avec Ram 1GO

  17. #17
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    Citation Envoyé par syki.mail Voir le message
    32 Bits avec Ram 1GO
    C'est en effet une configuration un peu faible...

  18. #18
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Dut Voir le message
    La technique est toujours la même. Il faut diminuer la quantité de mémoire nécessaire à chaque étape en divisant les tâches en sous-tâches :

    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
    for ii = 1:length(selTrainFeats)
     
        video = fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X Y] = calcultrajectoires(video);
        close all;
     
         siftaccApp{ii} = calculsiftacc(video, X, Y);
     
    end
     
    clear X Y
     
    siftaccAp = cat(1,siftaccApp{:});
    clear siftaccApp
     
    [domy2  vocabS] = k_means(siftaccAp, 1000);
    clear domy2 siftaccAp
     
    for ii = 1:length(selTrainFeats)
     
        video = fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X Y] = calcultrajectoires(video);
        close all;
     
        siftspatialApp{ii} = siftspatial(video, X, Y);
     
    end
     
    clear X Y
     
    siftspaApp = cat(1, siftspatialApp{:});
    clear siftspatialApp
     
    [dommy3 vocabSS] = k_means(siftspaApp, 300);
    clear siftspaApp dommy3
    Il faut que tu analyses chaque ligne de ton code à la main.
    Essaie d'évaluer la taille maximale de chaque variable (voir Comment déterminer approximativement la quantité de mémoire nécessaire pour le stockage d'une variable ?). Cela te donnera une idée de la quantité de mémoire (RAM+virtuelle) minimale nécessaire pour effectuer ton calcul.

    Sur quel type de machine travailles-tu ? 32bits ou 64bits ?
    Il serait peut être préférable d'envisager la migration du code sur une machine 64bits avec beaucoup de RAM.
    bonne solution, mais est ce que vous pouvez me dire comment je peux exécuter la premier boucle pour 10 vidéo seulement puis je sauvegarde les résultats. ensuite exécuter la même boucle pour 10 autres vidéos. puis je concatène les deux résultats pour l'utiliser au traitement suivant.
    Le code fonctionne pour 10 vidéo seulement(j'ai 24 vidéos au total selTrainFeats=24) puis s'affiche l'erreur:
    Out of memory. Type Help Memory for your options
    est ce que cette solution peut réduire le nombre de variable en mémoire.

  19. #19
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    Citation Envoyé par syki.mail Voir le message
    est ce que cette solution peut réduire le nombre de variable en mémoire.
    Tu peux toujours essayer comme ceci :

    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
    for ii = 1:length(selTrainFeats)
     
        video = fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X Y] = calcultrajectoires(video);
        close all;
     
        siftaccApp = calculsiftacc(video, X, Y);
     
        clear X Y
     
        filename = sprintf('siftaccApp%02d.mat',ii);
     
        save(filename,'siftaccApp','-mat')
     
        clear siftaccApp
     
    end
    Mais tu retrouveras très certainement le même message d'erreur lorsque tu essayeras d'assembler tous les fichiers mat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    siftaccAp = [];
     
    for ii = 1:length(selTrainFeats)
     
        filename = sprintf('siftaccApp%02d.mat',ii);
     
        siftaccAp = [siftaccAp ; load(filename,'-mat')];
     
    end
    D'ailleurs, quelles sont les dimensions de la variable siftaccApp dans la première boucle ?

    Sinon, quelle est la marque et le modèle de ta machine ?
    Tu devrais normalement pouvoir assez facilement ajouter au moins 1Go de RAM. Le prix des barrettes a bien chuté ces derniers temps.

  20. #20
    Membre régulier
    Enseignant Chercheur
    Inscrit en
    Décembre 2011
    Messages
    172
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 172
    Points : 73
    Points
    73
    Par défaut
    Bonsoir
    je reviens à l'utilisation de fichier .mat.
    J'utilise les fonctions "save et load" pour mettre les vecteurs[X Y] résultats dans un fichier.mat à fin de libérer la mémoire.
    j'ai fais une boucle qui exécute le calcule 3 fois, et à chaque fois je dois enregistrer les vecteurs résultats dans le fichier.mat
    Alors je dois sauver les vecteurs (qui sont des doubles) successivement pour les utilisés ultérieurement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      for ii = 1:length(selTrainFeats)
        video =fullfile(conf.calDir, videos{selTrainFeats(ii)}) ;
        [X Y]= versionTrajectoir(video);
        save('descripteurs.mat', 'X', 'Y','-append');
        clear X Y
    je n'ai pas obtenu la concaténation de touts les vecteurs résultats lorsque j'affiche le contenu de fichier.mat ( il y a des vecteurs manquantes).
    Autre question:
    on suppose que les vecteurs résultats finaux sont bien placés dans le fichier.mat, maintenant je veux récupérer 100000 Vecteurs aléatoirement on appliquant la fonction rand.
    Pouvez vous m'aider?

Discussions similaires

  1. Lecture & Utilisation fichier MAT
    Par jena dans le forum MATLAB
    Réponses: 1
    Dernier message: 31/03/2012, 21h07
  2. utiliser fichier XML dans un programme C++
    Par ilimo dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/04/2006, 12h42
  3. Réponses: 4
    Dernier message: 01/03/2006, 18h15
  4. utilisation fichier .h
    Par semaj_james dans le forum C
    Réponses: 3
    Dernier message: 11/01/2006, 12h10
  5. Utilisation fichier csv
    Par BFH dans le forum C
    Réponses: 3
    Dernier message: 15/11/2005, 10h50

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