|
|
Befehl find gibt leere Matrix (1 by 0) aus |
|
Gast1987 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.03.2014, 02:23
Titel: Befehl find gibt leere Matrix (1 by 0) aus
|
 |
Kann mir bitte Jemand helfen, bin kurz vorm heulen. Wenn ich in den unten abgebildeten Coden den ganz unten stehenden Befehl find verwende, bekomme ich keinen Index Wert, sondern lediglich eine leere Matrix (1 by 0). Wo liegt mein Fehler? Hab schon in anderen Foren gelesen, das es ein Rundungsfehler sein soll... Es erscheint keine Fehlermeldung oder Warnung!
|
|
|
|
|
Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 28.03.2014, 08:55
Titel:
|
 |
Hallo,
das ist ein Rundungsproblem von Matlab.
Du erzeugst einen Vektor, wenn du diesen anschaust, siehst du aber, dass nicht 0.35 0.36 0.37 usw da steht. Sondern jeweils noch Nullen dahinter stehen. Dass ist ein Zeichen dafür, dass diese Zahl nicht exakt nur 2 Stellen hat.
Nimm z.B. mal das von dir gesucht x == 0.4, also x(6) und führe folgendes durch:
Es wird dir der sehr sehr kleine REst angezeigt, der bewirkt, dass x(6) eben nicht gleich 0.4 ist.
Die schnellste Lösung, die mir jetzt einfällt ist, die Vektorerzeugung mit exakt 2-stelligen Zahlen zu erzwingen:
hier siehst du, dass der Rest von x(6) - 0.4 = 0 ist, so wie du es möchtest.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 28.03.2014, 11:08
Titel:
|
 |
Hallo,
eine andere Möglichkeit: nicht auf Gleichheit testen, sondern auf geringe Abweichung, z.B.
Bitte Beispiele möglichst auf den nötigen Code beschränken. Hier sind ja nur zwei Befehlszeilen wirklich relevant.
Grüße,
Harald
|
|
|
Gast1987 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.03.2014, 11:26
Titel:
|
 |
Super, beide Lösungen können mir helfen. Vielen Dank euch beiden
|
|
|
robbog |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 21.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.04.2014, 23:16
Titel:
|
 |
alternatvi kann man auch mit
arbeiten. Dabei wird bei Zahlen die Bankenschreibweise mit lediglich 2 Nachkommastellen verwendet. Allerdings nimmt der Befehl Einfluss auf alle derzeitigen Werte.
|
|
|
Ju |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.04.2014, 10:01
Titel: find Befehl => Too many output arguments.
|
 |
Ich häng mich einfach mal hier an den Thread mit ran, da mein Problem auch den find Befehl betrifft.
Eigentlich ganz simpel: ich habe ein 179*71 Werte großes Feld in einem geladenen matfile und will alle Werte in einem bestimmten Intervall finden.
Auf die Zeile
x = find(-0.5 < NAO_PC & NAO_PC < 0.5);
reagiert Matlab mit der Meldung:
??? Error using ==> NAO_PC
Too many output arguments.
Error in ==> korrelation at 41
x = find(-0.5 < NAO_PC & NAO_PC < 0.5);
Wo ist der Fehler??
Besten Dank schonmal,
Juju
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.04.2014, 10:19
Titel:
|
 |
Hallo,
find ist aber auch das einzige, was deine Frage mit der ursprünglichen zu tun hat ;) Ein neuer Thread wäre also geschickter gewesen.
Was ist denn NAO_PC? Eine Variable, ein Skript, eine Funktion?
Grüße,
Harald
|
|
|
Ju |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.04.2014, 10:25
Titel:
|
 |
Sorry
NAO_PC ist eine Variable. Besteht im Wesentlichen aus Werten zwischen -5.00 und 5.00.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.04.2014, 10:29
Titel:
|
 |
Hallo,
die Fehlermeldung legt nahe, dass NAO_PC eben keine Variable, sondern ein Skript oder eine Funktion ohne Rückgabeargumente ist. Bitte überprüfen.
Grüße,
Harald
|
|
|
Ju |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.04.2014, 10:43
Titel:
|
 |
Aha, der Hund war schon im mat-file selbst drin. Neues gemacht, jetzt läufts.
Danke!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|