2016-04-04 12 views
0

Ich habe einen Datensatz in SUBJ {s}., Und dann Felder SUBJ.WORDS {w} und SUBJ.RECALL {r} gespeichert. Ich habe versucht, eine Schleife zu erstellen, die findet, wenn SUBJ.RECALL 1 entspricht (1 = Wort erinnert, 0 nicht gespeichert). Danach möchte ich die Worte angezeigt haben, die den Positionen entsprechen, an denen SUBJ.RECALL 1. Say istInhalt des Zellenfeldes anzeigen, das einem anderen Zellenfeld mit Matlab entspricht

SUBJ{1}.WORDS{1}={‘Apple’, ‘Melon’, ‘Cheese’ ,’Pancakes’,Tomatoes’}% words presented. 
`SUBJ{1}.RECALL{1}=[1 0 0 1 1]% 1=word recalled 0=word non recalled. 

Was ich will, ist die Wörter angezeigt, die zurückgerufen worden sind, um die Worte Bedeutung, die 1 entsprechen in SUBJ.RECALL. Ich habe dies getan:

for s=1:length(SUBJ) 
    for w=1:length(SUBJ.WORDS) 
     for r=1:length(SUBJ.RECALL) 
      if SUBJ{s}.RECALL{r}==1 
       disp(SUBJ{s}.WORDS{(SUBJ.RECALL{r}==1)}) 
      end 
     end 
    end 
end 

Error: Attempt to reference field of non-structure array.

for s=1:length(SUBJ) 
    for w=1:length(SUBJ.WORDS) 
     for r=1:length(SUBJ.RECALL) 
      find(SUBJ{s}.RECALL{r}==1) 
      disp(SUBJ{s}.WORDS{(SUBJ.RECALL{r}==1)}) 
     end 
    end 
end 

Error: Attempt to reference field of non-structure

Vielen Dank im Voraus für jeden Kommentar!

+0

Sind Sie sicher, dass die Fehler innerhalb der Schleife und nicht in dieser Anrufe Länge (SUBJ.RECALL) sind? Sollte es nicht Länge sein (SUBJ {1} .RECALL) – Alessandro

Antwort

0

Sie benötigen wahrscheinlich nicht viele For-Schleifen, da Sie den Zellenelement-Inhalt mit find verarbeiten können. Ich habe unten einen Beispielcode eingefügt. Dies funktioniert für Ihre Beispieldaten, kann aber mit dem gesamten Datensatz fehlschlagen, da ich die Struktur nicht kenne.

for s=1:length(SUBJ) 
    % Store in variables to make code more readable 
    words = SUBJ{s}.WORDS{1}; 
    hits = SUBJ{s}.RECALL{1}; 
    if max(hits) == 1 % Only print when hits 
     disp(words(find(hits))) 
    end 
end 
+0

Ja, das funktioniert !! Vielen Dank! – MAP

Verwandte Themen