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

Fortlaufend nummerierte Variablen zusammenfassen

 

Frust
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 11.08.22
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 11.08.2022, 15:08     Titel: Fortlaufend nummerierte Variablen zusammenfassen
  Antworten mit Zitat      
Hallo allerseits,

ich arbeite derzeit mit Wärmebildsequenzen, also einer Großzahl einzelner Wärmebilder, die in Form fortlaufend nummerierter Variablen (Frame1, Frame2, Frame3, ... ) in einem .mat-workspace exportiert werden. Bei den einzelnen Frames handelt es sich jeweils um 64x80-double-Matrizen.

Als erstes möchte ich nun alle Frames in einer geeigneten Form, bspw. in einer Zelle oder auch als 3D-Matrix (oder Struct?) zusammenfassen und scheitere bereits daran, die einzelnen Frames überhaupt anzusprechen.

Meine Herangehensweise ist bislang die Folgende:

Code:
sequenz=cell(2499,1);

for i=1:2499
    framenumber='Frame%d';
    str=sprintf(framenumber,i);
    sequenz{i,1}=???str???;
end


Wie kann ich Matlab nun zu verstehen geben, dass ich mit "str" auf eine Variable gleichen Namens zugreifen möchte? Geht das überhaupt? Wenn überhaupt, schreibt mir Matlab meine Zelle mit Strings voll und quält sich darüber hinaus wegen des überfüllten Workspace.

Gibt es da bewährte Heransgehensweisen beim Umgang mit fortlaufend nummerierten Variablen? Kann man die Variablen vielleicht schon beim Importieren des Workspace mit load zusammenfassen?

Ich bin dankbar über jede Hilfe, gerne auch Suchbegriffe, anhand derer ich das Forum durchforsten kann. Ich kenne mich fast gar nicht aus in Sachen Matlab und generell Programmierung und frage lieber erstmal euch, bevor ich anfange mit eval herumzuhunzen.

Vielen Dank im Vorraus, beste Grüße
Paul
Private Nachricht senden Benutzer-Profile anzeigen


Frust
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 11.08.22
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 11.08.2022, 16:15     Titel:
  Antworten mit Zitat      
Gut, mit eval komme ich dort an, wo ich hinmöchte:

Code:
sequenz = cell(2499,1);

for i = 1 : 2499
    sequenz{i,1} = eval(['Frame' num2str(i)]);
end


Eine Lösung ohne eval würde ich dennoch begrüßen.
_________________

Ob der Test zerstörungsfrei funktioniert oder nicht, hängt in erster Linie von meiner Tagesform ab.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.08.2022, 16:43     Titel:
  Antworten mit Zitat      
Hallo,

wie kommen denn die durchnummerierten Variablen zustande? Durch einen load-Befehl? Dann könnte dir die Syntax S = load(___) helfen, die eine Struktur zurückgibt. Diese könnte dann z.B. mit struct2cell in ein Cell Array umgewandelt werden.
Es ist eine sehr gute Idee, eval vermeiden zu wollen. Möglich ist das aber nur, wenn man das Problem durchnummerierter Variablen gar nicht erst entstehen lässt.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Frust
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 11.08.22
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 12.08.2022, 13:01     Titel:
  Antworten mit Zitat      
Mensch Harald, das war erstaunlich einfach, darauf gekommen wäre ich aber dennoch nicht so schnell. Danke für deine Antwort.

Das Thermografiesystem spuckt Daten im .csv-Format aus, jede Datei enthält die Daten eines Frames, jedoch mit haufenweise zusätzlichen Informationen die mich nicht interessieren. Daneben ist der Export als Matlab-Workspace möglich (geht etwas schneller), dort sind dann nur die für mich notwendigen Informationen (80x64 Temperaturwerte pro Frame) enthalten, allerdings eben in Form einzelner Variablen und soweit ich das überblicke, hat man da auch keine weiteren Einstellungsmöglichkeiten für den Export.

Ich nehme mit, dass man in Matlab entweder mit durchnummerierten Dateien arbeitet, die man während des Imports direkt in einer Struktur oder Zelle zusammenfasst oder .mats so importiert, dass kein Riesenhaufen Variablen entsteht.

Vielen Dank, beste Grüße
Paul
_________________

Ob der Test zerstörungsfrei funktioniert oder nicht, hängt in erster Linie von meiner Tagesform ab.
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 - 2024 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.