|
|
Fehlermeldung bei Vektorerzeugung |
|
hegga123 |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.02.2013, 10:01
Titel: Fehlermeldung bei Vektorerzeugung
|
 |
Hallo zusammen,
wieso kommt bei folgendem Code:
die Fehlermeldung:
Warning: Size vector should be a row vector with integer elements.
Danke und Schönen Gruß
Christian
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.02.2013, 10:42
Titel:
|
 |
Hallo,
das ist eine Warnung, keine Fehlermeldung.
Was ist denn der Inhalt von z.t1? Die Anzahl der Elemente eines Vektors muss natürlich ganzzahlig sein, daher rundet zeros ggf. und gibt eine entsprechende Warnung aus.
Wenn z.t1 Zahlen mit einer Dezimalstelle enthält, kann es beim Multiplizieren mit 10 zu minimalen Rundungsfehlern kommen, so dass keine Ganzzahl herauskommt. Dann würde ich round(z.t1) verwenden.
Grüße,
Harald
|
|
|
hegga123 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.02.2013, 11:28
Titel:
|
 |
Ok, Problem gelöst.
der Inhalt von z.t1 war als float gespeichert.
Mit single(z.t1) wurde es in integer umgewandelt.
Danke für die schnelle Hilfe
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.02.2013, 13:05
Titel:
|
 |
Hallo hegga123,
Die "floats" aus C bezeichnet man in Matlab als "single". Eine Umwandlung mit "single(z.t1)" würde also am Wert nichts ändern. ROUND, CEIL, FIX, FLOOR sind geeignet um Integerwerte zu erzeugen.
Gruß, Jan
|
|
|
hegga123 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 06.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.02.2013, 09:37
Titel:
|
 |
Hallo,
ok , das stimmt.
Die Warnung ist trotzdem weg. Woran kann das liegen?
Die Werte für z.t1 sind 1.0 2.0 3.0 usw.
Gruß, Christian
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.02.2013, 11:49
Titel:
|
 |
Hallo hegga123,
Wenn man 0.999999999999999 im Command Window darstellt und z.B. "format short" als Anzeige Format eingestellt ist, erhält man "1.0". Die Umwandlung dieser Zahl in ein SINGLE rundet auf die nächste in diesem Format representierbare Zahl, un die ist 1.
Das explizite runden ist unbedingt anzuraten, wenn man die Dimensionen durch floating point Berechnungen erzeugt.
Gruß, Jan
|
|
|
|
|
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.
|
|