Ich bin ein MATLAB Anfänger. Hier ist das Problem:MATLAB - floor Frage
>> a = floor(7/2.5)
a =
2.00
>> b = rem(7,2.5)
b =
2.00
>> c = floor(b/2)
c =
0
c sollte 1 sein, richtig? Warum ist es 0 ???
Es ist anders, wenn b = 2 direkt eingegeben wird, wie folgt:
>> b = 2
b =
2.00
>> c = floor(b/2)
c =
1.00
Vielen Dank. Ich habe das Ergebnis der rem-Funktion in single umgewandelt. Dann ist zumindest mein Problem gelöst. –
konvertieren Sie das Ergebnis von rem zu einem int. Es wird immer sein (genauso wie floor, ceil und round immer ganze Zahlen sind) – KitsuneYMG
Vorsicht bei der Terminologie "In Ganzzahl konvertieren": Runde konvertiert nicht in einen Integer-Typ, sondern gibt den nächsten Integer-Wert immer noch als Double zurück. Das ist normalerweise das, was du willst. Die tatsächlichen Integer-Typen von Matlab wie int32 haben eine höhere Priorität als double und bewirken, dass alle nachfolgenden Operationen mit Ganzzahlarithmetik ausgeführt werden. –