Чтобы присвоить тип данных полуточности номеру или переменной, используйте half
конструктор. Тип данных полуточности занимает 16 битов памяти, но ее представление с плавающей точкой позволяет ему обработать более широкие динамические диапазоны, чем целое число или типы данных с фиксированной точкой, одного размера. Для получения дополнительной информации смотрите Числа с плавающей запятой.
Подмножество MATLAB® функции поддерживаются для использования с входными параметрами полуточности. Кроме того, некоторые функции поддерживают генерацию кода с типами данных полуточности. C и генерация Кода С++ требует MATLAB Coder™. CUDA® генерация кода для NVIDIA® Графические процессоры требуют GPU Coder™. Поддерживаемые функции появляются в алфавитном порядке в следующей таблице. Для получения общей информации относительно генерации кода с половиной точности, смотрите half
.
Функция | Поддержка симуляции MATLAB | Поддержка Генерации кода C/C++ | Поддержка генерации кода графического процессора |
---|---|---|---|
abs | ✔ | ✔ | ✔ |
acos | ✔ | ✔ | ✔ |
acosh | ✔ | ✔ | ✔ |
activations (Deep Learning Toolbox) | ✔ | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к |
all | ✔ | ✔ | ✔ |
and , & | ✔ | ✔ | ✔ |
any | ✔ | ✔ | ✔ |
area | ✔ | ||
asin | ✔ | ✔ | ✔ |
asinh | ✔ | ✔ | ✔ |
atan | ✔ | ✔ | ✔ |
atan2 | ✔ | ✔ | ✔ |
atanh | ✔ | ✔ | ✔ |
bar | ✔ | ||
barh | ✔ | ||
cast | ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
|
cat | ✔ | ✔
| ✔
|
ceil | ✔ | ✔ | ✔ |
cell | ✔ | ✔ | ✔ |
circshift | ✔ | ✔ | ✔ |
classify (Deep Learning Toolbox) | ✔ | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к |
coder.ceval | ✔ | ✔ | |
colon , : | ✔ | ✔ | ✔ |
complex | ✔ | ✔ | |
conj | ✔ | ✔ | ✔ |
conv | ✔ | ✔ | ✔ |
conv2 | ✔ | ✔ | ✔ |
cos | ✔ | ✔ | ✔ |
cosh | ✔ | ✔ | ✔ |
cospi | ✔ | ✔ | ✔ |
ctranspose | ✔ | ✔ | ✔ |
cumsum | ✔ | ||
dot | ✔ | ||
double | ✔ | ✔ | ✔ |
empty | ✔ | ||
eps | ✔ | ✔ | ✔ |
eq , == | ✔ | ✔ | ✔ |
exp | ✔ | ✔ | ✔ |
expm1 | ✔ | ✔ | ✔ |
eye | ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
|
fft | ✔ | ✔ | |
fft2 | ✔ | ✔ | |
fftn | ✔ | ✔ | |
fftshift | ✔ | ✔ | ✔ |
fix | ✔ | ✔ | ✔ |
flip | ✔ | ✔ Аргумент Dimension не может быть половиной точности. | ✔ Аргумент Dimension не может быть половиной точности. |
fliplr | ✔ | ✔ | ✔ |
flipud | ✔ | ✔ | ✔ |
floor | ✔ | ✔ | ✔ |
fma | ✔ Комплексные входные параметры полуточности не поддерживаются. | ✔ Комплексные входные параметры полуточности не поддерживаются. | ✔ Комплексные входные параметры полуточности не поддерживаются. |
fplot | ✔ | ||
ge , >= | ✔ | ✔ | ✔ |
gt , > | ✔ | ✔ | ✔ |
half | ✔ | ✔ | ✔ |
horzcat | ✔ | ✔ | ✔ |
hypot | ✔ | ✔ | ✔ |
ifft | ✔ | ✔ | |
ifft2 | ✔ | ✔ | |
ifftn | ✔ | ✔ | |
ifftshift | ✔ | ✔ | ✔ |
imag | ✔ | ✔ | |
Inf | ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
|
int16 | ✔ | ✔ | ✔ |
int32 | ✔ | ✔ | ✔ |
int64 | ✔ | ✔ | ✔ |
int8 | ✔ | ✔ | ✔ |
isa | ✔ | ✔ | ✔ |
iscolumn | ✔ | ✔ | ✔ |
isempty | ✔ | ✔ | ✔ |
isequal | ✔ | ✔ | ✔ |
isequaln | ✔ | ✔ | ✔ |
isfinite | ✔ | ✔ | ✔ |
isfloat | ✔ | ✔ | ✔ |
isinf | ✔ | ✔ | ✔ |
isinteger | ✔ | ✔ | ✔ |
islogical | ✔ | ✔ | ✔ |
ismatrix | ✔ | ✔ | ✔ |
isnan | ✔ | ✔ | ✔ |
isnumeric | ✔ | ✔ | ✔ |
isobject | ✔ Возвращает true с входом полуточности. | ✔ Возвращает false с входом полуточности. | ✔ Возвращает false с входом полуточности. |
isreal | ✔ | ✔ | ✔ |
isrow | ✔ | ✔ | ✔ |
isscalar | ✔ | ✔ | ✔ |
issorted | ✔ | ||
isvector | ✔ | ✔ | ✔ |
ldivide | ✔ | ✔ | ✔ |
le , <= | ✔ | ✔ | ✔ |
length | ✔ | ✔ | ✔ |
line | ✔ | ||
log | ✔ | ✔ | ✔ |
log10 | ✔ | ✔ | ✔ |
log1p | ✔ | ✔ | ✔ |
log2 | ✔ | ✔ Два выходных синтаксиса не поддерживаются. | ✔ Два выходных синтаксиса не поддерживаются. |
logical | ✔ | ✔ | ✔ |
Logical Operators: Short-Circuit && || | ✔ | ✔ | ✔ |
lt , < | ✔ | ✔ | ✔ |
max | ✔ | ✔ | ✔ |
mean | ✔ | ✔ | ✔ |
min | ✔ | ✔ | ✔ |
minus , - | ✔ | ✔ | ✔ |
mldivide , \ | ✔ Левая сторона должна быть скаляром | ||
mod | ✔ | ✔ | ✔ |
mrdivide , / | ✔ Правая сторона должна быть скаляром | ✔ Правая сторона должна быть скаляром | ✔ Правая сторона должна быть скаляром |
mtimes , * | ✔ | ✔ | ✔ Для Генерации кода графического процессора можно выполнить умножение матриц полуточности с действительными входными параметрами. |
NaN | ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
|
ndims | ✔ | ✔ | ✔ |
ne , ~= | ✔ | ✔ | ✔ |
not | ✔ | ✔ | ✔ |
numel | ✔ | ✔ | ✔ |
ones | ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
|
or , || | ✔ | ✔ | ✔ |
permute | ✔ | ✔ | ✔ |
plot | ✔ | ||
plot3 | ✔ | ||
plotmatrix | ✔ | ||
plus , + | ✔ | ✔ | ✔ |
pow10 | ✔ | ✔ | ✔ |
pow2 | ✔ | ✔ | ✔ |
power , .^ | ✔ | ✔ | ✔ |
predict (Deep Learning Toolbox) | ✔ | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к |
predictAndUpdateState (Deep Learning Toolbox) | ✔ | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. Чтобы выполнить расчеты в половине, поставьте цель библиотеки к |
prod | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. В результате поведение насыщения отличается между одним и половиной входных параметров: maxhalf = half.realmax; isequal(prod([maxhalf 2 0.5]), maxhalf) ans = logical 1 maxsingle = realmax('single');
isequal(prod([maxsingle 2 0.5]), maxsingle) ans = logical 0 | ✔ | ✔ |
rdivide | ✔ | ✔ | ✔ |
real | ✔ | ✔ | ✔ |
rem | ✔ | ✔ | ✔ |
repelem | ✔ | ✔ | ✔ |
repmat | ✔ | ✔ Аргумент Dimension не может быть половиной точности. | ✔ Аргумент Dimension не может быть половиной точности. |
reshape | ✔ | ✔ Аргумент Dimension не может быть половиной точности. | ✔ Аргумент Dimension не может быть половиной точности. |
rgbplot | ✔ | ||
round | ✔ Только один вход поддержан | ✔ Только один вход поддержан | ✔ Только один вход поддержан |
rsqrt | ✔ Комплексные входные параметры полуточности не поддерживаются | ||
scatter | ✔ | ||
scatter3 | ✔ | ||
sign | ✔ | ✔ | ✔ |
sin | ✔ | ✔ | ✔ |
single | ✔ | ✔ | ✔ |
sinh | ✔ | ✔ | ✔ |
sinpi | ✔ | ✔ | ✔ |
size | ✔ | ✔ | ✔ |
sort | ✔ | ||
sqrt | ✔ | ✔ | ✔ |
squeeze | ✔ | ✔ | ✔ |
storedInteger | ✔ | ||
sum | ✔ Половина входных параметров брошена к одинарной точности, и расчеты выполняются в одинарной точности. В результате поведение насыщения отличается между одним и половиной входных параметров: maxhalfint = half.flintmax; isequal(sum([maxhalfint, 1, -1]), maxhalfint) ans = logical 1 maxsingleint = flintmax('single');
isequal(sum([maxsingleint, 1, -1]), maxsingleint) ans = logical 0 | ✔ | ✔ |
tan | ✔ | ✔ | ✔ |
tanh | ✔ | ✔ | ✔ |
times , .* | ✔ | ✔ | ✔ |
transpose | ✔ | ✔ | ✔ |
typecast | ✔ | ||
uint16 | ✔ | ✔ | ✔ |
uint32 | ✔ | ✔ | ✔ |
uint64 | ✔ | ✔ | ✔ |
uint8 | ✔ | ✔ | ✔ |
uminus | ✔ | ✔ | ✔ |
uplus | ✔ | ✔ | ✔ |
vertcat | ✔ | ✔ | ✔ |
xlim | ✔ | ||
ylim | ✔ | ||
zeros | ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
| ✔ Поддерживаемый синтаксис:
|
zlim | ✔ |