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

Aufsteigend nummerierte Variable plotten

 

Berni

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2016, 10:15     Titel: Aufsteigend nummerierte Variable plotten
  Antworten mit Zitat      
Hey zusammen,

die Überschrift mag etwas verwirrend sein. Leider hab ich keine kurze Formulierung meines Problems gefunden...

Ich habe während meiner Bachelorarbeit einen Haufen Messdaten in unterschiedlichen Excelfiles.
Ich lese 1 bis x Excelfiles ein und speichere diese mithilfe vom assignin-Befehl mit aufsteigender Nummerierung startend mit 0. (z.B. Zwei Messungen werden eingelesen. Variable Messung_0 und Messung_1 werden erzeugt)

Nun möchte ich diese Messungen gerne in einem gemeinsamen Plot zeichnen lassen. Da ich aber vor Programmstart nicht weiß, wie viele Messungen letztlich eingelesen werden, kann ich das nicht fest programmieren.

Gibt es eine Möglichkeit die Plotfunktion so in eine for-Schleife (o.Ä.) einzubinden, dass er so lange plottet bis das Nummerierungsmax. erreicht ist?

Danke für die Hilfe und viele Grüße,
Berni


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.11.2016, 10:40     Titel: Re: Aufsteigend nummerierte Variable plotten
  Antworten mit Zitat      
Hallo Berni,

Du findest in diesem Forum hunderte Threads zum Thema durch-nummerierter Variablen-Namen. Die Antwort ist immer gleich: Mache das nicht.
Man handelt sich damit unnötige Probleme ein. Statt den Index im Namen zu verstecken, benutze lieber einen Index, z.B. in einem Cell-Array:
Code:
Messung{1}, Messung{2}, ...

Eine Suche im Forum nach "assignin" oder "eval" bringt viele (viele viele) equivalente Lösungsvorschläge.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Berni

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2016, 16:00     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für den Tipp. Ich wusste ich bin schon mal über diese Thematik drübergestolpert.

Da ich eher Matlab-Anfänger bin war ich mit deiner Antwort doch noch etwas beschäftigt.

Habe es letztlich so gelöst:
Code:
Messung{counter}="eingelesene Messdaten";
counter = counter + 1;


Damit erzeugt er mir eine Datei mit dem Namen Messung und in untergeordneten Arrays sind dann die Messungen mit 30000 Zeilen x 45 Spalten.

Später kann ich mich dann mit folgendem Programm darauf beziehen:
Code:
for counter2=1:(counter-1)
                for i=1:"Anzahl der Zeilen des entsprechenden Arrays"
                   h(counter2)=plot(Messung{1,counter2}(i, "gewünschte Spalte"), Messung{1,counter2}(i, "gewünschte Spalte");
                end
            end


Aktuell funktioniert es so wie ich es mir vorstelle.
Trotzdem mal die Frage, ob du das so oder so ähnlich geplant hattest? Smile
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.11.2016, 16:08     Titel:
  Antworten mit Zitat      
Hallo Berni,

Ja, so ist das eine saubere Lösung.

Zitat:
Damit erzeugt er mir eine Datei mit dem Namen Messung und in untergeordneten Arrays sind dann die Messungen mit 30000 Zeilen x 45 Spalten.

Um kleinlich zu sein: Das ist keine "Datei" mit "Unter-Arrays", sondern ein "Cell-Array" mit den "Elementen", die die Matrizen enthalten. Hier spielen diese Namen keine echte rolle, aber wenn du mal ein andere Problem beschreibst, kann es auf solche Details ankommen.

Gruß, Jan
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.