Функции округления и знака
Ряд особых функций служат для выполнения операций округления числовых данных и анализа их знака.
- fix(A) – возвращает массив А с элементами, округленными до ближайшего к нулю целого числа. Для комплексного А действительные и мнимые части округляются отдельно.
Примеры:
>
>
A
=
[
1
/
3
2
/
3
:
4.99
5.01
]
A
=
0.3333
0.6667
4.9900
5.0100
>
>
fix(A)
ans
=
0
0
4
5
- floor(A) – возвращает А с элементами, представляющими ближайшее меньшее или равное соответствующему элементу А целое число. Для комплексного А действительные и мнимые части преобразуются отдельно.
Примеры:
>
>
A
=
[
-
1
/
3
2
/
3
:
4.99
5.01
]
A
=
-
0.33330.6667
4.99005.0100
>
>
floor(A)
ans
=
-
1
0
4
5
- ceil (A) – возвращает ближайшее большее или равное А целое число. Для комплексного А действительные и мнимые части округляются отдельно.
Примеры:
>
>
a
=
-
1.789
;
>
>
ceil(a)
ans
=
-
1
>
>
a
=
-
1.789
+
1
*
3.908
;
>
>
ceil(a)
ans
=
-
1.0000
+
4.0000i
- rem(X,Y) – возвращает X – fix(X./Y).*Y, где fix(X./Y) – целая часть от частного X/Y.
Если операнды X и Y имеют одинаковый знак, функция rem(X, Y) возвращает тот же результат, что mod(X.Y). Однако (для положительных X и Y) rem(-x.y) = mod(-x,y)-y. Функция rem возвращает результат, находящийся между 0 и sign(X)*abs(Y). Если Y=0, функция rem возвращает NaN. Аргументы X и Y должны быть целыми числами. Из-за неточного представления в компьютере чисел с плавающей запятой использование вещественных (или комплексных) входных аргументов может привести к непредвиденным результатам.
Пример:
>
>
X
=
[
25
21
23
55
3
];
>
>
Y
=
[
4
8
23
6
4
];
>
>
rem(X.Y)
ans
=
15013
- round(X) – возвращает округленные до ближайшего целого элементы массива X. Для комплексного X действительные и мнимые части округляются отдельно.
Пример:
>
>
X
=
[
5.675
21.6
+
4.897
*
1
2.654
55.8765
];
>
>
round(X)
ans
=
6.0000
22.0000
+
5.0000i
3.0000
56.0000
- sign(X) – возвращает массив Y той же размерности, что и X, где каждый из элементов Y равен:
- 1, если соответствующий элемент X больше 0;
- 0, если соответствующий элемент X равен 0;
- -1, если соответствующий элемент X меньше 0. Для ненулевых действительных и комплексных X – Sign(X)=X./abs(X).
Пример:
>
>
X
=
[
-
5
21
2
0
-
3.7
]:
>
>
sign(X)
ans
=
-
1
1
1
0
-
1