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

Caught "std::exception" Exception

 

ri
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2013, 16:05     Titel: Caught "std::exception" Exception
  Antworten mit Zitat      
Hallo Forum,

ich bekomme folgende Fehlermeldung:

Caught "std::exception" Exception message is:
Message Catalog MATLAB:matrix was not loaded from the file. Please check file location, format or contents


Ich lese in einer Zählschleife etwa 100 csv-Dateien mit dafür eigens definierten Klassen ein. In der Schleife wird das Objekt der Klasse erzeugt, die Datei eingelesen, Operationen ausgeführt und das Objekt wird dann noch in der Schleife mit clear gelöscht.

Die 100 Dateien kann ich ein bis zwei Mal in der Art einlesen. Dann melden MATLAB den Fehler.

Kann mir jemand weiterhelfen?
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.08.2013, 16:35     Titel: Re: Caught "std::exception" Exception
  Antworten mit Zitat      
Hallo ri,

Bitte poste den relevanten Teil des Codes, der die Meldung produziert und eine vollständige Kopie der Fehlermeldung.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
ri
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2013, 11:08     Titel:
  Antworten mit Zitat      
Die Fehlermeldung ist exakt wie oben angegeben. Es ist also keine MATLAB-Fehlermeldung, sondern aus Java?!? Man beachte den Clear-Befehl in der Einlese-Schleife, der den Speicher eigentlich frei geben sollte.

Ich kann die 100 csv-Dateien so zwei Mal einlesen. Spätestens beim dritten Mal hängt sich MABLAB mit obiger Fehlermeldung auf und ich muss es abschießen und neu starten.

Die handle-Klasse (gekürzt) zum Einlesen einer csv-Datei:
Code:
classdef FileMaxwellThreePhase < fileManage.importSimOut.FileOutBase
   
    properties (Dependent = false, SetAccess = public)
        slotMMF         % magneto-motive force of slot circuit in Arms
        mat_3ph         % matrix of three phase data
    end
   
    properties (Dependent = true, SetAccess = private)
        mat_2ph         % matrix of two phase data
        mat_2ph_dq      % matrix of dq transformed data
    end
   
    methods
        function self = FileMaxwellThreePhase(inFileName)
            % @arg inFileName: char, string of file
           
            % Call superclass constructor
            self = self@fileManage.importSimOut.FileOutBase(inFileName);
           
            % Read data from file
            a = csvread(self.fileName,1,2,[1,2,self.lc,2]);
            b = csvread(self.fileName,1,4,[1,4,self.lc,4]);
            c = csvread(self.fileName,1,6,[1,6,self.lc,6]);
           
            self.mat_3ph = [a(:,1) b(:,1) c(:,1)];                
               
            % Correct, if more than a period sampled            
            numOfMinus = floor(round((self.numOfPeriods ...
                - floor(self.numOfPeriods))*360/self.degreeStep));
            if numOfMinus > 0

                self.phaseVec = self.phaseVec(1:end-numOfMinus);
                self.mat_3ph = self.mat_3ph(1:end-numOfMinus,:);
                self.numOfPeriods= (self.phaseVec(end) -self.phaseVec(1)...
                    + self.degreeStep) / 360;
                disp(['Correction of phase vector length for ' inFileName]);
                disp(['phi_0 = ' num2str(self.phaseVec(1)) ...
                    '  phi_end = ' num2str(self.phaseVec(end))]); end;
               
        end
        function outMat_2ph = get.mat_2ph(self)
        function outMat_2ph_dq = get.mat_2ph_dq(self)
        function self = set.slotMMF(self, inSlotMMF)
        function out_dq_fundamental = dq_fundamental(obj)
        function outMat_2ph = twoAxesTrafo(self, inMat_3ph)
        function outMat_2ph_dq = dqTrafo(self, phaseVec, vec_2ph)

    end
   
end


Die Methode (gekürzt) aus einem anderen handle-Objekt, die die csv-Dateien in einer Schleife einliest:
Code:

function [] = readSimData(self)
            filArr  = self.getFileArray();
            csvArr  = strfind(filArr, '.csv');
            flxArr  = strfind(filArr, '_fluxLink');
           
            % Run through files
            for fileRun = 1:length(filArr)
                if isempty(cell2mat(csvArr(fileRun)))
                    continue; end;
               
                % Flux linkage
                elseif ~isempty(cell2mat(flxArr(fileRun)))
                    fileObj = fileManage.importSimOut.FileMaxwellThreePhase(...
                            [self.sourcePath char(filArr(fileRun))]);
                    [~, keyName, ~] = fileparts(fileObj.fileName);
                    self.fileMap_flx(keyName(1:length(keyName)-9)) = fileObj.dq_fundamental();                    
                end

                clear fileObj;  % does not help (stack overflow ?)
            end
        end
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.08.2013, 20:35     Titel:
  Antworten mit Zitat      
HAllo ri,

Und in welcher Zeile tritt das Problem auf?

Noch eine Bemerkung: "cell2mat(csvArr(fileRun))" kann man vereinfachen zu: "csvArr{fileRun}".

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.03.2014, 09:04     Titel: Lösung: Files schließen
  Antworten mit Zitat      
Die Files müssen geschlossen werden. MatLab kann intern nur eine begrenzte Anzahl an Files öffnen.
 
ri
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 14.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2014, 14:26     Titel:
  Antworten mit Zitat      
danke, ist schon was her, ich probiere es mal

http://www.mathworks.de/de/help/matlab/ref/fclose.html
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.