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

Datei Löschen und schleife von Vorne beginnen (Aus Funktion

 

KEH
Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 11.05.2015, 11:18     Titel: Datei Löschen und schleife von Vorne beginnen (Aus Funktion
  Antworten mit Zitat      
Moien

Ich hab Jetzt gefühlt 3h im google Gelesen aber mit meine Verständnis nix gefunden auser die Frage an sich

Ich hab eine Funktion die Mir daten Zuschneidet wenn die Bedingung erfüllt ist wenn nicht soll diese Datei gelöscht werden.

Code:
function [ M1, M2, M3, M4] = Zuschneiden_mit_Minimas( A , aFile )
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
%% minimas identifizieren
    X=A(:,3);
    [MinX Y2] = findpeaks(-X,'minpeakdistance',200);
    %kleinste Differenz steht für Pertubationsanfang
    a = ( Y2>4000  & Y2<4100);
%    [a1 g]= min(diff(a))
%    Ypert = find(Y2 == a(g) );

    if max(a) == 1
    [x Ypert] = max(a)
    % Zuordnung der Minimas und Deffinition der Matrizen
    ZA = Y2(Ypert-1);
    PA = Y2(Ypert);
    PE = Y2(Ypert+2);
    P1 = Y2(Ypert+3);
    P2 = Y2(Ypert+4);
   
    M1=A(ZA:PA,:);
    M2=A(PA:PE,:);
    M3=A(PE:P1,:);
    M4=A(P1:P2,:);
       
    else
        display('Error: Reizfehler')
        plot(X)
        delete(aFile)
%     return
%      goto 60
    end

end

 


so schauts aus.
Nun hab ich das Problem das Ich nach Ablauf eine Fehlermeldung in der Main hab (keine Rückgebewerte, was aber auch so sein soll).
Gibt es eine Möglichkeit das Automatisch zulösen?
die Funktion wird in einer Schleife Aufgerufen diese soll dann einfach neugestartet werden.


Danke Schon mal
Falls es nur kleine Änderungen bedarf bin ich auch offen

Gruß
KEH
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.05.2015, 11:24     Titel:
  Antworten mit Zitat      
ich würde einfach nan oder so zurück geben und die dann nach der schleife in der du die funktion aufrufst alle löschen. oder leere elemente zurück geben
Code:
function [a,b,c]=fun(x)
if x==1
    a=1;
    b=2;
    c=3;
else
    a=[];
    b=[];
    c=[];
end

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 11.05.2015, 11:29     Titel:
  Antworten mit Zitat      
mhh ja da ist auch gut da muss ich dann nur mit den nan befehlen für mean und sdt arbeiten ....


aber so generell einen Befehl alla
" spring zurück zur Zeile xx und lass das programm von da weiter laufen"

gibts nicht?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.05.2015, 11:35     Titel:
  Antworten mit Zitat      
man kann vieleicht mit try und catch arbeiten.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 11.05.2015, 11:44     Titel:
  Antworten mit Zitat      
uff
das bsp macht sinn...
aber ich glaube ohne eine art return to line wird das auch nicht helfen
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.05.2015, 11:52     Titel:
  Antworten mit Zitat      
Zitat:
aber ich glaube ohne eine art return to line wird das auch nicht helfen
aha
aus der aussage kann ich leider nicht auf auftretende fehler schließen.
dann musst du dein beispiel wohl nochmal genauer ausführen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 11.05.2015, 12:38     Titel:
  Antworten mit Zitat      
Oh Sorry ich meine das Matlab Bsp.

Code:
A = rand(3);
B = ones(5);

try
   C = [A; B];
catch err

   % Give more information for mismatch.
   if (strcmp(err.identifier,'MATLAB:catenate:dimensionMismatch'))

      msg = ['Dimension mismatch occurred: First argument has ', ...
            num2str(size(A,2)), ' columns while second has ', ...
            num2str(size(B,2)), ' columns.'];
      error('MATLAB:myCode:dimensions', msg);

   % Display any other errors as usual.
   else
      rethrow(err);
   end

end  % end try/catch


das geht soweit gut für mich wäre eben interresant wie ich zur schleife zurückkomme

Ich ruffe eine Datei auf Lese eine Matrix ein und Schneide diese Zurecht
falls beim zuschneiden die Bedingung fehlen sollt lösche ich diese datei
Nach dem löschen will ich einfach mit der Nächsten datei weiter machen

Also eine Fehlermeldung hab ich nicht da es ja alles somacht wie es soll
nur das die Funktion (oben) nach dem Löschen keine Rückgabe hat ...

edit.:
Fehlermeldung gesammt:

Error in Zuschneiden_mit_Minimas (line 5)
X=A(:,3);

Output argument "M1" (and maybe others) not assigned during call
to
"C:\HSA_Projekte\Stolper_Studie\Zuschneiden_mit_Minimas.m>Zuschneiden_mit_Minimas".

Error in SS_Datenmatrix_Phython (line 7Cool
[M_PertGait_roh{iFile,1}, M_PertGait_roh{iFile,2},
M_PertGait_roh{iFile,3}, M_PertGait_roh{iFile,4}]
= Zuschneiden_mit_Minimas( A, aFile);

aber das ist logisch deswegen will ich vor derrück gabe aus der funktion wieder rausspringen
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.05.2015, 12:46     Titel:
  Antworten mit Zitat      
und was klappt jetzt mit try nicht? oder den anderen vorschlägen die ich gemacht habe ?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 11.05.2015, 13:08     Titel:
  Antworten mit Zitat      
Ok
eine Lösung ist es direkt im Main zuschreiben bei der betroffenen Schleife über eine If Abfrage

If Bedingung

Funktion ausführen

else

delete File

end

in der funktion ist es wohl zu komplex
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.05.2015, 13:10     Titel:
  Antworten mit Zitat      
kann ich nicht sagen da bis jetzt noch kein zusammenhängendes beispiel gegeben wurde das den fehler reproduziert aber wenn du eine lösung gefunden hast ist ja gut.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 11.05.2015, 13:11     Titel:
  Antworten mit Zitat      
dein erster vorschlag würde funktionieren wenn ich die dateien ignorieren wöllte. Ziel war aber diese zu Löschen

Mit Try und Catch fehlt mir der funke bei catch der aus der funktion wieder ohne rückgabe ins Main Programm springt
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 11.05.2015, 13:14     Titel:
  Antworten mit Zitat      
Zitat:
Mit Try und Catch fehlt mir der funke bei catch der aus der funktion wieder ohne rückgabe ins Main Programm springt

verstehe ich nicht.
Zitat:
dein erster vorschlag würde funktionieren wenn ich die dateien ignorieren wöllte. Ziel war aber diese zu Löschen

versthe ich auch nicht. was spricht dagegen die datei zu löschen und nan zurück zu geben ?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
KEH
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 09.10.14
Wohnort: ---
Version: 2016b
     Beitrag Verfasst am: 12.05.2015, 08:54     Titel:
  Antworten mit Zitat      
Ja noch besser als
" Ich brauch einen Befehl der mich aus der funktion wieder in eine Stelle des Hauptprogrammes springenlässte"
wird es nicht werden


Spricht nichts Dagegen, ich sag ja das es geht.
Da ich aber die Datei gleichzeitig aus meiner Ordnerstrucktur lösche und beim Nächsten Lauf diese ja weg ist, finde ich das es schöner ist dies garnicht erst zu machen.

aber siehe gestern 13.08 das ist die Lösung die hier für gut ist.
für andere Sachen wäre aber eine "goto line" Funktion sicher nett =)

gruß
KEH
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.