WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Ausgabe in mehreren Plots

 

Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2011, 16:41     Titel: Ausgabe in mehreren Plots
  Antworten mit Zitat      
Hallo

Ich habe folgendes Problem. Ich habe eine mit GUIDE erstellte Gui, auf der sich unter anderem 16 leere Plots (Dia1-Dia16) befinden. Nun lese ich aus einem Excel-Sheet Daten ein und möchte diese nun den jeweiligen Plots zuweisen. Nur leider funktioniert das so wie ich mir das dachte nicht.

Code:

Data = xlsread(fileName);
x = Data(:,1);
yW = [2 3 4 11 8 7 18 19 30 31 32 33 37 36 35 34];
for i = 1:16
    y = Data(:,yW(i));
    plot(handles.Dia(i),y);
end


Danke


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 23.05.2011, 17:08     Titel:
  Antworten mit Zitat      
Was genau funktioniert denn nicht?
Welche Fehlermeldungen kommen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2011, 07:51     Titel: Ausgabe in mehreren Plots
  Antworten mit Zitat      
Hallo

Das Problem ist dass er die einzelnen axes nicht erkennt. Deren Tag Namen sind Dia1-Dia16. Folgende Fehlermeldung:

??? Reference to non-existent field 'Dia'.

Error in ==> Test>popup_Versuch_Callback at 192
plot(handles.Dia(i), x,y);

Error in ==> gui_mainfcn at 96
feval(varargin{:});

Error in ==> Test at 42
gui_mainfcn(gui_State, varargin{:});

Error in ==>
@(hObject,eventdata)Test('popup_Versuch_Callback',hObject,eventdata,guidata(hObject))


??? Error while evaluating uicontrol Callback
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 24.05.2011, 08:05     Titel:
  Antworten mit Zitat      
Das macht das Ganze doch schonmal deutlich klarer.
Wie in deiner Fehlermeldung steht, gibt es in der Struktur handles die Felder für Dia nicht. Entsprechend ist auch dein gezeigter Code (zumindest vorerst) vollkommen belanglos, weil der Fehler bereits in der Achsenzuordnung liegt.

Wie/wo hast du die Achsen definiert?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2011, 08:23     Titel:
  Antworten mit Zitat      
Ich habe die Achsen mithilfe von Guide erstellt und im Property Inspector den Tag entsprechend geändert. Der Code funktioniert, wenn ich die Achsen direkt anspreche.

Code:

plot(handles.Dia1, x,y);


Die Achsen definiert habe ich demnach glaube ich nicht, dachte das funktioniert ähnlich wie bei VB. Wie mache ich das ?
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 24.05.2011, 08:26     Titel:
  Antworten mit Zitat      
Code:
handles.Dia1


und

Code:
handles.Dia(1)


ist ja auch nicht das gleiche. Im ersten Beispiel ist Dia1 der Name der Variablen, wohingegen Dia(1) das erste Element einer Variablen namens "Dia" ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 24.05.2011, 08:36     Titel:
  Antworten mit Zitat      
Code:
hAxStr = strcat(repmat('Dia', 16, 1), cellfun(@num2str, (num2cell(1:16)'), 'UniformOutput', 0));
...
plot(handles.(hAxStr{i}), ...)
...
 



Kürzer hab ich den String nicht zusammenbekommen, omg Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2011, 08:36     Titel:
  Antworten mit Zitat      
Das ist klar. Ich möchte eigentlich auch nicht die Variabel Dia definieren, sonder nur den String weitergeben, in der Art und Weise:

Code:

for i = 1:16
    y = Data(:,yW(i));
    Wert = ['Dia' i];
    plot(handles.Wert, x,y);
end


Nur leider funktioniert das ebenso wenig, demnach suche ich nach einer Möglichkeit dies zu bewerkstelligen, den bereits bestehenden Axes die entsprechenden x und y Werte zuzuweisen.
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 24.05.2011, 08:37     Titel:
  Antworten mit Zitat      
So wie ich es oben geschrieben habe oder:

Code:
for i = 1:16
    y = Data(:,yW(i));
    Wert = ['Dia' num2str(i)];
    plot(handles.(Wert), x,y);
end


müsste auch funktionieren! Die Klammern bei handles.(Wert) sind notwendig (dynamische Feldadressierung).
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2011, 08:43     Titel:
  Antworten mit Zitat      
Super danke funktioniert
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 24.05.2011, 08:50     Titel:
  Antworten mit Zitat      
Gerne wieder Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.