|
bzbe |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 22.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 18:00
Titel: double2int
|
 |
Ich entschuldige mich schon vorher für die dumme Frage, weil sonst garantiert jemand kommt und sich beschwert ich soll die Suchfunktion nutzen und googlen. Hätte das zu einer Lösung verholfen wäre ich nicht hier.
Ich will eine Variable die über eine GUI eingegeben wird (sie kommt aus einem edit Feld) für eine for Schleife als Schrittweite nutzen.
Die Variable ist im Format double. Und ich bekomme die Variable nicht auf den Integer Dateitypen.
round() liefert nur wieder eine Variable vom Typ double
uint() und int() erzeugen mir eine struct. In der struct steht dann das meine Variable von der Klasse INT ist, signed oder unsigned und eben der Wert. Aber auch als Datentyp double.
Wie bekomme ich denn aus meiner double Variable eine Integer Variable.
Oder noch besser: Kann ich aus meinem edit Feld meiner GUI direkt eine int auslesen.
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 18:25
Titel:
|
 |
Hallo,
wenn du in der GUI etwas eingibst, ist das ja zunächst ein String. Dann ist eine direkte Umwandlung möglich mit etwas der Form:
Alternativ über str2double und dann z.B. int8.
Aber mal eine ganz andere Frage: warum willst du unbedingt einen Integerdatentyp haben? In MATLAB ist es generell üblich, auch ganzzahlige Werte als Doubles abzuspeichern.
Grüße,
Harald
|
|
|
bzbe |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 22.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 18:55
Titel:
|
 |
Der Befehl
liefert mir für startwert eine double variable.
--
ist ungültige matlab syntax
--
Der Umweg über
liefert mir für sw ein char, für startwert eine leer double Variable
--
Integer will ich deshalb haben, weil ich von einem array ab einem gewissen wert jeden xten wert bis zu einem gewissen wert haben will. Also:
wobei s ein bestehendes array ist. Und ich will eben das über step z.B. jeder 10 Wert genommen wird. Und das eben ab einem Startpunkt bis zu einem Endpunkt.
Matlab akzeptiert dann für die 3 Variablen start, step und ende nur integer.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 20:15
Titel:
|
 |
Hallo,
mal am Ende anfangen:
Zitat: |
Matlab akzeptiert dann für die 3 Variablen start, step und ende nur integer. |
Das wäre mir aber ganz neu. In dem Fall sollten die Variablen ganzzahlig sein - das heißt aber nicht, dass sie einen Integer-Datentyp haben müssen.
Wenn du das aber so möchtest / brauchst, versuche z.B. mal
Du musst ja verhindern, dass der get-Befehl als Teil des Strings verstanden wird.
Grüße,
Harald
|
|
|
bzbe |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 22.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 21:18
Titel:
|
 |
Vielen Dank für deine schnelle und gute Hilfe.
War aber total dämlich. Ich hatte immer die Fehlermeldung bekommen:
bzw anstatt uint16 stand da eben immer double oder was anderes. Das Problem war aber (und das tut mir Leid, dass ich dafür Zeit von dir in Anspruch genommen habe), dass ich den Pfad an dem die andere Funktion lag nicht zum Path hinzugefügt habe -.-
Da finde ich aber auch die Fehlermeldung irgendwie irreführend.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 21:47
Titel:
|
 |
Hallo,
was ist denn an der Meldung irreführend?
Man kann ja nicht erwarten, dass MATLAB auch die Verzeichnisse durchsucht, die nicht auf dem Pfad sind...
Grüße,
Harald
|
|
|
bzbe |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 22.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 21:50
Titel:
|
 |
Das ist klar. War mir auch bekannt das man das beachten muss und ich hab den Fehler eigentlich schon tausend mal gemacht und sollte daraus gelernt haben. Hab aber irgendwie da vorher absolut nicht dran gedacht.
Wenn ich die Meldung lese denke ich im Ersten Moment, dass die Funktion einen bestimmten Datentypen nicht verarbeiten kann. Es könnte ja auch einfach heißen:
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.07.2014, 22:02
Titel:
|
 |
Hallo,
an sich ja. Es kann aber ja auch sein, dass es eine Funktion gibt, sie aber nur nicht für den Datentyp geeignet ist, z.B.
Grüße,
Harald
|
|
|
|
|
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.
|
|