Sono un principiante di MATLAB. Ecco il problema:MATLAB - domanda di piano
>> a = floor(7/2.5)
a =
2.00
>> b = rem(7,2.5)
b =
2.00
>> c = floor(b/2)
c =
0
c dovrebbe essere 1, giusto? Perché è 0 ???
È differente quando b = 2 viene immesso direttamente come segue:
>> b = 2
b =
2.00
>> c = floor(b/2)
c =
1.00
Grazie mille. Ho convertito il risultato della funzione rem in single. Quindi, almeno il mio problema è stato risolto. –
converte il risultato di rem in un int. (Sempre come floor, ceil e round sono sempre numeri interi) – KitsuneYMG
Attenzione con la terminologia "convert to integer": round non converte in un tipo intero, ma restituisce il valore intero più vicino, sempre come un double. Questo è solitamente quello che vuoi. I tipi interi Matlab effettivi come int32 hanno precedenza più alta del doppio e faranno tutte le operazioni successive su di essi con aritmetica intera. –