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

load-Befehl liest falsche Datei ein

 

Feal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2019, 16:53     Titel: load-Befehl liest falsche Datei ein
  Antworten mit Zitat      
Hallo allerseits,

schön, dass man hier auch als Gast etwas schreiben darf Wink

Programmiersprachen sind ja dafür bekannt, dass sie einen hier und da mal zum Verzweifeln bringen. Octave ist da leider keine Ausnahme^^

Folgende Situation:
Ich verarbeite mit Octave Datenmengen im Bereich von 70.000.000 Werten, was eine gewisse Rechenzeit benötigt. Nachdem ich später hin und wieder auf die Ergebnisse zugreifen möchte, ohne die erneut berechnen zu müssen, speichere ich mir diese als -binary Datei ab. Beim späteren einlesen der Daten mit load() gebe ich dann den gewünschten Dateinamen an und lass mir die Ergebnisse laden.
Soweit funktioniert alles.
Wenn ich jetzt jedoch einen zweiten Datensatz zusätzlich laden möchte, hat Octave irgendwo den Pfad (oder was auch immer) zu der zuvor geladenen Datei gespeichert. Obwohl ich den Namen der zu ladenden Datei ändere, wird dennoch die ursprüngliche geladen.
Dachte jetzt, dass vielleicht die Variablen nicht überschrieben werden und es somit ausschaut, als würde die falsche Datei gelesen werden. Folglich einmal alle relevanten Variablen mit clear ('Variable',...) gelöscht. Problem besteht weiterhin. Wenn ich jedoch anstatt des einzelnen Löschens der Variablen clear verwende, funktioniert das nächste Einlesen. (Workspace ist in beiden Fällen leer)


Hier mal der verwendete Code: (genutzt wird Octave 4.0.3, Version 4.2 und 4.4 sind leider verbuggt und machen auf meinem Macbook Probleme beim Starten bzw. Beenden)

Abspeichern der Daten:
Code:

dateinamen = 'Messung_1_10_01_2018';
save('-binary',['daten_',dateinamen],'daten')
 

'daten' ist hierbei Klasse double und hat die Dimension 7x327x3114

Einlesen der Daten:
Code:

dateinamen = 'Messung_1_10_01_2018';
daten_load = load('-binary',['daten_',dateinamen]);
daten_load = struct2cell(daten_load);
daten_load = cell2mat(daten_load);
global daten = daten_load;
 


Soweit funktioniert es.

Ein weiteres Einlesen der 'Messung_2_...' ergibt jedoch wieder die Messdaten von 'Messung_1_...'
Code:

dateinamen = 'Messung_2_10_01_2018';
daten_load = load('-binary',['daten_',dateinamen]);
daten_load = struct2cell(daten_load);
daten_load = cell2mat(daten_load);
global daten = daten_load;
 


Was nicht funktioniert ist:
Code:

clear ('daten','daten_load','dateinamen')
dateinamen = 'Messung_2_10_01_2018';
daten_load = load('-binary',['daten_',dateinamen]);
daten_load = struct2cell(daten_load);
daten_load = cell2mat(daten_load);
global daten = daten_load;
 


Dafür geht aber:
Code:

clear
dateinamen = 'Messung_2_10_01_2018';
daten_load = load('-binary',['daten_',dateinamen]);
daten_load = struct2cell(daten_load);
daten_load = cell2mat(daten_load);
global daten = daten_load;
 


Ist allerdings keine Option, da ich auf andere Variablen im Workspace angewiesen bin.

Hat jemand eine Idee woran das liegen kann und wie ich das Problem umgehe?

Beste Grüße
Feal


Feal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2019, 17:04     Titel: Fehlerursache war Variablen-Deklaration
  Antworten mit Zitat      
Auch schön, wenn man kurz nach dem Erstellen eines Beitrages die Lösung für das Problem findet.
globale Variablen darf man wohl nicht direkt beim deklarieren mit einem Wert versehen.

Fehler tritt auf:
Code:

dateinamen = 'Messung_1_10_01_2018';
daten_load = load('-binary',['daten_',dateinamen]);
daten_load = struct2cell(daten_load);
daten_load = cell2mat(daten_load);
global daten = daten_load;
 


Kein Fehler:
Code:

dateinamen = 'Messung_1_10_01_2018';
daten_load = load('-binary',['daten_',dateinamen]);
daten_load = struct2cell(daten_load);
daten_load = cell2mat(daten_load);
global daten
daten = daten_load;
 
 
andyydna

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2019, 16:22     Titel:
  Antworten mit Zitat      
Zitat:
Version 4.2 und 4.4 sind leider verbuggt und machen auf meinem Macbook Probleme beim Starten bzw. Beenden


Aha, die sind "verbuggt". Oder ist es dein build für macOS welches Probleme macht? Homebrew, fink, macports macht alles einen Unterschied...
 
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.