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

Interfaces Graphiques Discussion :

problème de cellules et de tableaux de valeurs


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 110
    Par défaut problème de cellules et de tableaux de valeurs
    bonjour,
    Je suis encore entre les tableaux, les cellules de tableaux et autres choses du même genre. Je n'arrive pas a faire la part des choses. J'ai fait un bouton pour lire les fichiers ACQ dans le programme fileproq. Normalement ce fichier doit être lu et me donner une structure de données qui ressemble a s'y méprendre a celle lue pas le bouton load ( pour que cela fonctionne dans le lbHeaders_Callback du programme fileproc. Je ne peux pas hélas vous mettre le fichier TDF car il est trop gros.. Mais j'ai un message d'erreur que je n'arrive pas a cerner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Cell contents assignment to a non-cell array object.
     
    Error in ==> fileproc>litfichierACQ_Callback at 1941
    SmartData{1}{4}{1}=acq(1,1)
    Il se trouve que j'ai essayé beaucoup de (), [], {}, dans tous les sens, mais j'ai toujours le même message d'erreur. J'espère que vous comprendrez ce que je veux dire car je sais que je ne suis pas tres clair. Il faudrait a priorie que les données de SmartData{1}{4}{1} soit une cellule, mais je ne sais pas comment faire !!!!
    Si vous avez une idée je suis preneur. Je vous encoie les fichiers attachés que j'ai pu faire a la bonne taille.
    Merci pour vos réponse car là je suis complètement en panne. Bon courage a vous

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Le message signifie en effet que SmartData{1}{4} n'est pas un tableau de cellules.

    Pour avancer il faudrait que tu regardes plus précisément ce qu'est SmartData{1}{4} en l'affichant par exemple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 110
    Par défaut rebonjour
    Merci pour cette réponse rapide qui m'aide a y voir plus clair. Voici ce que me donne SmartData{1}{4} lorsque je lis les fichiers TDF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ans = 
     
        [ 6680x33 double]
        [53376x4  double]
        [53376x6  double]
    il y a un certain nombre de lignes et un certain nombre de colonnes. Par contre lorsque je lis les fichiers ACQ j'obtiens autres choses mais pour ce qui est des data cela devrait revenir au même !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    acq = 
     
            hdr: [1x1 struct]
           data: [14000x2 double]
        markers: [1x1 struct]
    Le but du jeu c'est de recréer la même structure de Smart Data lu dans le load TDF, dans le bouton litfichierACQ_Callback que dans le bouton btnLoad_Callback pour que celui ci passe dans le lbHeaders_Callback du programme fileproc sans souci. Cela me permettrait de récupérer toutes les fonctionnalités de cette fonction pour continuer a le faire marcher.Je sais que je ne suis pas un tres grand orateur dans le domaine de l'informatique, mais si vous pouviez m'aiguiller dans ce dédalle d'informations cela me serait d'un grand secour.

    Pour mémoire le code du bouton litfichierACQ_Callback 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
    function litfichierACQ_Callback(hObject, eventdata, handles)
    % hObject    handle to litfichierACQ (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    [FileName, PathName] = uigetfile({'*.acq','fichiers (*.acq)'}, 'Sélectionnez un/plusieurs fichiers'...
        ,'MultiSelect', 'on');
    filename=fullfile(PathName,FileName)
    global SmartData hPlots hP3 SelPlots hg Nm ChansAdded monitAdded dsRaw SynchMode
    set(handles.lblFolder, 'String',PathName); %Label string=path to selected files
    set(handles.lbFiles, 'String',FileName);   %Listbox items=name(s) of selected file(s)
    if iscell(FileName)  %multiselect - selected >1 of files
     %SmartData - cell array containing all loaded and processed data
          lnFN=length(FileName); 
          SmartData=cell(lnFN,1);
          for ii=1:lnFN
              SmartData{ii}=load_acq(FileName{ii}, PathName,ii);
              SmartData{ii}
          end
       else  %selected 1 file
          SmartData=cell(1,1);
          acq = load_acq(filename) 
       end 
    SmartData{1}{1}=acq.data
    z=size(SmartData{1}{1});
    k = 1:z(1,2);
    SmartData{1}{2}=k
    set(handles.lbHeaders, 'String',SmartData{1}{2});
    SmartData{1}{3}=0
    SmartData{1}{4}=acq.data
    SmartData{1}{4}{1}=acq(1,1)
    SmartData{1}{5}=acq.data
    SmartData{1}{6}=0
    SmartData{1}{7}=0 
    guidata(hObject,handles)
    lbHeaders_Callback(handles.lbHeaders, eventdata, handles)
    end
    vous pouvez noter que SmartData{1}{4} est fait avec un tableau de 14000 lignes et de deux colonnes., Mais je ne sais pas comment syntaxer SmartData{1}{4}{1} pour qu'il soit acceptable par lbHeaders_Callback .

    Merci de votre aide par avance.

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SmartData{1}{4}=acq.data
    SmartData{1}{4}{1}=acq(1,1)
    pose problème.
    En effet tu met dans SmartData{1}{4} acq.data qui est un tableau de doubles (de taille 14000*2).
    Donc les données de SmartData{1}{4} sont alors :

    • SmartData{1}{4}(1,1) qui vaut acq.data(1,1) (un nombre)
    • SmartData{1}{4}(i,j) qui vaut acq.data(i,j)(i allant de 1 à 14000, et j de 1 à 2)

    Donc ce qu'il faudrait que tu nous explique c'est ce que tu veux faire avec la 2ème ligne.
    Si tu enlèves la 1ère et que tu ne mets que la 2ème tu pourras créer SmartData{1}{4}{1} qui sera un tableau de cellule de taille 1*1 contenant acq(1,1) c'est à dire le 1er élément de la structure acq (qui en fait est tout simplement acq lui-même)...

    Maintenant si je reviens sur ta donnée SmartData{1}{4} telle que donnée par la lecture des fichiers TDF, il s'agit d'un tableau de cellules de taille 3*1 avec :

    • SmartData{1}{4}{1} est un tableau de doubles de taille 6680*33
    • SmartData{1}{4}{2} est un tableau de doubles de taille 53376*4
    • SmartData{1}{4}{3} est un tableau de doubles de taille 53376*6

    Donc pas grand-chose à voir avec ce que tu essayes de faire dans la fonction en-dessous.

    Comme toujours, tout cela me parait excessivement compliqué, et je pense toujours qu'il faudrait que tu étudies de très très près cette structure pour au mieux la réarranger pour que cela soit plus compréhensible, et au pire la comprendre (en écrivant avec un papoer et un crayon ce qu'il y a dans chaque élément).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 110
    Par défaut Tout est bien qui fini bien
    Merci ma chere Caro-Line.
    Vos commentaires m'ont fait grand bien. J'ai réussi a mettre ce dont j'avais besoin dans SmartData{1}{4}{1} avec les fichiers ACQ. Cela m'a permit de les faire s'afficher par la fonction lbHeaders_Callback avec tout ce qu'il faut dans le graphe. Je ne sais pas encore tout sur Smart Data, car comme vous le dites, c'est tres complexe, et je suis toujours un peu perdu entre les cellules de tableaux et les tableaux de cellules. Mais bref la fin justifie les moyens et on s'en est sortis.
    Bon je vais vous laisser car j'ai encore beaucoup d'exploration a faire dans matlab. Merci de tout coeur a vous et a bientot j'espère.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 25/07/2011, 13h34
  2. Réponses: 1
    Dernier message: 06/08/2008, 09h35
  3. [Tableaux] recuperation valeurs dun tableau ou d'un array
    Par pascale86 dans le forum Langage
    Réponses: 5
    Dernier message: 11/10/2005, 16h14
  4. Problèmes de Hashages et de Tableaux
    Par Chris_LaFouine dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2005, 10h57
  5. Réponses: 2
    Dernier message: 19/08/2003, 18h04

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