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

if-Schleife fuer leeren Array

 

Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2008, 11:00     Titel: if-Schleife fuer leeren Array
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem und hoffe, dass mir jemand dabei helfen kann.

Ich habe ein Programm zum auswerten von Messdaten, wobei fuer jede Messreihe die gleitende Mittelwerte berechnet werden. Danach moechte ich ueberpruefen ob jedes array Werte >10 od. <-10 enthaelt. Dies habe ich durch eine if-Schleife geschaft mit

if any(MW{i}>10)
MW{i}='false1';
.............
end

Das Problem ist, das zunaechst die Messdaten gefiltert wurden und dadurch leere arrays entstanden sind und das Programm stoppt wenn es auf einem leeren array trifft. Wie kann ich das Problem umgehen?
Ich habe versucht es in der if-Schleife zu integrieren mit

if isempty(MW{i})
continue...

leider hat es nicht funktioniert,ich weiss nicht wie ich das 'continue' einsetze oder vielleicht gibt es eine andere Moeglichkeit?
Ich waere sehr dankbar fuer jeden hilfreichen Tip.

Gruss,
Maria


cs
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 03.06.08
Wohnort: NRW
Version: ---
     Beitrag Verfasst am: 16.06.2008, 13:29     Titel:
  Antworten mit Zitat      
Hi,
hoffe, ich habe Dein Problem richtig verstaden. Mein Vorschlag: Die Abfrage schachteln und damit das "continue" umgehen:
Code:

for i=1:Anzahl_MWs
    if ~isempty(MW{i}) && any(MW{i}>10)
        MW{i}='false1';
        .............
    end;
end;
 

Gruß, Christian
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2008, 14:23     Titel:
  Antworten mit Zitat      
Danke, Christian!

Es hat funktioniert, aber nur mit elseif:

Code:

Daten{i}= datenstrom{i}(-408<=datenstrom{i}& datenstrom{i}<=408);


%Gleitender Mittelwert
%for k=1:numel(Daten{i}) % Beginn der for-Schleife die soviele Durchl?ufe hat, wie Datens?tze vorhanden sind

    n = length(Daten{i});

    for index = 2:n
        MW{i}(index-1) = mean(Daten{i}(1:index));
    end
   
for i=1:i
     if isempty(Daten{i})
        MW{i}='empty';
     elseif any(MW{i}>10)
         MW{i}='false>10';
     elseif any(MW{i}<-10)
        MW{i}='false<-10';
     end;
end;


Hauptsache, es funktioniert! Very Happy

Gruss,
maria
 
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.