Jestem początkującym MATLAB. Oto problem:MATLAB - pytanie podłogowe
>> a = floor(7/2.5)
a =
2.00
>> b = rem(7,2.5)
b =
2.00
>> c = floor(b/2)
c =
0
c powinno wynosić 1, prawda? Dlaczego to 0 ???
Jest to inaczej, gdy b = 2 jest wprowadzany bezpośrednio w następujący sposób:
>> b = 2
b =
2.00
>> c = floor(b/2)
c =
1.00
Wielkie dzięki. Przekształciłem wynik funkcji rem na pojedynczy. Następnie przynajmniej mój problem został rozwiązany. –
przekonwertować wynik rem do int. Zawsze będzie (tak jak podłoga, sufit i runda są zawsze liczbami całkowitymi) – KitsuneYMG
Ostrożnie z terminem "konwertuj na liczbę całkowitą": runda nie konwertuje na typ całkowity, ale raczej zwraca najbliższą wartość całkowitą, wciąż jako podwójną. Zwykle to jest to, czego chcesz. Rzeczywiste typy liczbowe Matlab, takie jak int32, mają wyższy priorytet niż podwójne i powodują, że wszystkie kolejne operacje na nich wykonywane są z arytmetyczną liczbą całkowitą. –