Soy un principiante de MATLAB. Aquí está el problema:MATLAB - pregunta de piso
>> a = floor(7/2.5)
a =
2.00
>> b = rem(7,2.5)
b =
2.00
>> c = floor(b/2)
c =
0
c debería ser 1, ¿verdad? ¿Por qué es 0?
Es diferente cuando se introduce b = 2 directamente como sigue:
>> b = 2
b =
2.00
>> c = floor(b/2)
c =
1.00
Muchas gracias. Convertí el resultado de la función rem en single. Entonces, al menos mi problema ha sido resuelto. –
convertir el resultado de rem en un int. Siempre será (al igual que piso, ceil y redondo son siempre números enteros) – KitsuneYMG
Cuidado con la terminología "convertir a entero": round no convierte a un tipo entero, sino que devuelve el valor entero más cercano, aún como un doble. Esto es generalmente lo que quieres. Los tipos enteros reales de Matlab como int32 tienen una precedencia mayor que el doble, y harán que todas las operaciones subsiguientes sobre ellos se realicen con aritmética de enteros. –