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

Daten von Subprogramm in Workspace speichern

 

sebbastiannn
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 06.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2022, 13:23     Titel: Daten von Subprogramm in Workspace speichern
  Antworten mit Zitat      
Hallo Zusammen,

its me again haha

nachdem ich von euch schon großartige Hilfe bekommen habe bei meinen letzten Problemen, frage ich mich nun wie es hier mit aussieht. Ich habe versucht das Daten die ein Unterprogramm (heißt das so?) erstellt hat, auch im Workspace abgespeichert werden.

Momentan gibt es eine main.m wo alles aufgerufen wird, eine davon ist die Datei EnergyYield.m (wo allerei berechnet wird). Um die Berechnung durchzuführen muss ein anderes Programm (LTSpice) aufgerufen werden, welches eine kurze Simulation durchführt. Die Daten werden dann in einer .raw Datei abgespeichert (.txt wäre mir natürlich lieber, aber leider will das Programm das nicht Crying or Very sad )
Um .raw Datein auslesen zu können gibt es ein Skript ist von Github (credits gehen an Paul Wagner/Peter Feichtinger):
https://github.com/PeterFeicht/ltspice2matlab
Habe die Datei + eine bsp .raw Datei aber auch nochmal in den Anhang gepackt (ich hoffe eine .zip datei ist nicht verboten Confused )
Man sollte sie mit dem Befehl ausführen können:
Code:
RAW_DATA = LTspice2Matlab2016('Tandem_3T-series_1step.raw')


Im Grunde sollte dann ein Eintrag im Workspace entstehen.

Soweit so gut ... der Code fkt halbwegs, allerdings sind meine (ich nenne es mal) Instanzen wie folgt: main.m -> EnergyYield.m -> in Energyyield wird CallLTSpice.m geöffnet -> nach Simulation wird in CallLTSpice LTspice2matlab2016.m geöffnet, welche dann die RAW-DATA Auswertung macht. Problem ist wenn ich es einzeln ausführe bekomme ich es in den Worksapce, aber wenn ich das ganze Programm laufen lasse bekomme ich es nicht in mein Workspace. Was sind geeignete Befehle um es in den Workspace zu geben:)? ich habe paar ausprobiert bin aber glorreich gescheitert:/



Beste Grüße,
Basti Cool

PS: der ganze Code ist jetzt ein bisschen lang, deswegen jetzt nur das Stückchen und die Beschreibung:)

File+Bsp.zip
 Beschreibung:

Download
 Dateiname:  File+Bsp.zip
 Dateigröße:  42.5 KB
 Heruntergeladen:  215 mal
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 13.07.2022, 16:42     Titel:
  Antworten mit Zitat      
Hallo Basti,

2 Vorschläge basierend auf deiner Problembeschreibung:

1. benötigte Variablen direkt von der Funktion übergeben lassen - dazu z.B.
Code:
function [output1, output2, output3] = EnergyYield(input1, input2)
am Anfang der EnergyYield.m einfügen - so kannst du die benötigten Daten von einer Funktion zur nächsten übergeben (mehr dazu in der Hilfe zu function )

2. du nutzt .mat files um die Daten zwischenzuspeichern, siehe dazu save und load in der Hilfe

Grundsätzliche Frage: Warum willst du die Daten im Workspace haben?

Viele Grüße
Steve
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
sebbastiannn
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 06.07.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2022, 12:14     Titel:
  Antworten mit Zitat      
Hallo Steve Very Happy

steve hat Folgendes geschrieben:

2 Vorschläge basierend auf deiner Problembeschreibung:

1. benötigte Variablen direkt von der Funktion übergeben lassen - dazu z.B.
Code:
function [output1, output2, output3] = EnergyYield(input1, input2)
am Anfang der EnergyYield.m einfügen - so kannst du die benötigten Daten von einer Funktion zur nächsten übergeben (mehr dazu in der Hilfe zu function )


Das werde ich in der Tat mal probieren. Da es allerdings nicht mein Skript ist für die .raw Datei Auswertung muss ich mal schauen wie ich das am besten mache Smile
steve hat Folgendes geschrieben:

2. du nutzt .mat files um die Daten zwischenzuspeichern, siehe dazu save und load in der Hilfe

Grundsätzliche Frage: Warum willst du die Daten im Workspace haben?


In der Tat hatte ich es schon mit Save versucht allerdings gab es diverse Fehlermeldungen, ich denke mal das hat aber bestimmt was damit zu tun, dass ich es nicht ordendlich übertragen bekomme die Daten haha

Und zur Frage. Ich will danach noch mit anderen Unterprogrammen drauf zugreifen und mein Matlab hat immer gemeckert wenn es nicht im Workspce ist, zudem möchte ich sehen ob die Daten korrekt sind wenn ich sie mir im Workspace anschaue:)

Viele Grüße
Basti
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 14.07.2022, 19:10     Titel:
  Antworten mit Zitat      
Hallo Basti,

generell solltest du dann mit save und load gut zurechtkommen. Die Daten kannst du dir jederzeit über den Debug-Modus anschauen. Dazu kannst du an jeder x-beliebigen Stelle im Quellcode einen Break Point setzen (einfach die Zeilennummer anklicken).

Aber ich versuche es auch mal über einen anderen Weg: Wie rufst du denn die einzelnen "Unterprogramme" auf? Einfach jedes File öffnen und "Run" bzw. im Command Window aufrufen? Oder hast du ein Hauptfile, welches die einzelnen Skripte (?) oder Funktionen (!) aufruft?

Viele Grüße
Steve
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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.