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

Schleife

 

andi_1
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2010, 16:36     Titel: Schleife
  Antworten mit Zitat      
Hallo Leute,

habe hier eine Schleife, die unter anderem Matritzen abarbeitet. Bei einigen Schleifendurchläufen entsteht in der Rechung eine 0-by-1 - Matrix. Ich bekomme folgende Fehlermeldung:
Code:

ab1 =

   Empty matrix: 0-by-1

??? Improper assignment with rectangular empty matrix.
 

das Programm rechnet ab hier nicht weiter.
Wie kann ich diesen Fall, dass ab1 eine 0-by-1-matrix wird abfangen, so dass mein Programm weiterrechnen kann.

Gruß und Dank
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 06.09.2010, 16:57     Titel:
  Antworten mit Zitat      
Hallo,

ISEMPTY kann dir da weiterhelfen. Einfach IF-Bedingung in deine Schleife einbauen.
Private Nachricht senden Benutzer-Profile anzeigen
 
andi_1
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 15.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2010, 14:29     Titel:
  Antworten mit Zitat      
...da probier man nen halben Tag rum und es ist so einfach Smile
Danke und Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2011, 12:56     Titel:
  Antworten mit Zitat      
Hallo zusammen,

vielleicht könnte das jemand ausfürhlicher erklären für einen Matlab Anfänger. Ich habe eine Schleife und einige der Vektoren enthalten nur
nans.

Wie genau könnte so eine if isempty Bedingung aussehen, um diese Datensätze aus der BErechnung der Schleife auszuschließen?

Danke

Anfänger2
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2011, 14:12     Titel:
  Antworten mit Zitat      
Hallo,

Du kannst isnan (in Kombination mit any oder all) verwenden um herauszufinden, ob nan in Deinem Vektor vorkommen.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2011, 14:53     Titel: Danke
  Antworten mit Zitat      
Hallo LittleX,

danke für deine Antwort. Leider bin ich, wie mein Name schon sagt absoluter Anfänger.

Ich möchte eine for-Schleife ausführen für alle Vektoren, die nicht nur nans enthalten. So sieht meine Idee aus:

Code:
for i=1:n
a(i)=funct % funct ist eine definierte Fuktion, die aufgerufen wird
if all isnan a(i)==1 %finde die Vektornen die nur aus nans besteheen
???
else
end
 


wie muss nun ??? aussehen, damit dieser Vektor ignoriert wird?

Danke

Anfänger2[/code]
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2011, 16:26     Titel:
  Antworten mit Zitat      
Hallo,

was gibt denn die Funktion funct zurück? Einen Skalarwert, der in eine Vektor a geschrieben wird oder gibt die Funktion gleich einen ganzen Vektor im Datentyp cell zurück?
Allgemein funktioniert isnan so:
Code:

r = [1,nan,2]  % Vektor mit nan
isnan(r)  % logischer Vektor, true an allen Stellen in denen NaN steht
any(isnan(r))  % true, wenn mind. 1 nan im Vektor vorkommt
all(isnan(r))   % true, wenn nur nan im Vektor vorkommen
% Beispiel if
if all(isnan(r))
disp('alles nan')
end
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2011, 16:52     Titel:
  Antworten mit Zitat      
Danke für den Code, damit versuche ich es gleich mal!!

Die function funct gibt einen Vektor zurück. Optimalerweise hätte ich gerne einen Vektor mit

Ergebnis für i=1; Ergebnis für i=2; Nur Nans; Ergebnis für i=4;...

D.h. einen Platzhalter/Text, der mich darauf hinweist, dass 3 übersprungen wurde, weil der Input dort nur Nans enthält.

Viele Grüße

Anfänger2
 
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.