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.
Du kannst isnan (in Kombination mit any oder all) verwenden um herauszufinden, ob nan in Deinem Vektor vorkommen.
Viele Grüße,
LittleX
Anfänger2
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.01.2011, 13:53
Titel: Danke
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 ifallisnan a(i)==1 %finde die Vektornen die nur aus nans besteheen
???
else end
wie muss nun ??? aussehen, damit dieser Vektor ignoriert wird?
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 ifall(isnan(r)) disp('alles nan') end
Viele Grüße,
LittleX
Anfänger2
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.01.2011, 15:52
Titel:
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
Options and Permissions
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
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.