Main Content

hypot

平方和的平方根(斜边)

说明

示例

C = hypot(A,B) 返回以下方程的计算结果(计算是为了避免下溢或上溢):

C = sqrt(abs(A).^2 + abs(B).^2)

示例

全部折叠

计算边长为 34 的直角三角形的斜边。

C = hypot(3,4)
C = 5

检查使用 hypot 与使用 M 代码编写基本 hypot 方程代码之间的区别。

创建所执行的基本功能与 hypot 基本相同的匿名函数。

myhypot = @(a,b)sqrt(abs(a).^2+abs(b).^2);

对于 hypot 所提供的下溢和上溢行为,myhypot 没有相同的考虑。

计算 myhypot 返回有用值的上限。您可以看到此测试函数在 1e154 左右处达到其最大值,并在该点返回无限结果。

myhypot(1e153,1e153)
ans = 1.4142e+153
myhypot(1e154,1e154)
ans = Inf

使用 hypot 函数执行相同的操作,并观察 hypot 对大小达到约 1e308 的值的运算情况,该值约等于您计算机上的 realmax 的值(可表示的最大双精度浮点数)。

hypot(1e308,1e308)
ans = 1.4142e+308
hypot(1e309,1e309)
ans = Inf

输入参数

全部折叠

输入数组,指定为标量、向量、矩阵或多维数组。输入 AB 必须具有相同的大小或具有兼容的大小(例如,A 是一个 M×N 矩阵,B 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小

如果一个或两个输入为 NaN,则 hypot 返回 NaN

数据类型: single | double
复数支持:

详细信息

全部折叠

IEEE 合规性

对于实数输入,hypot 的一些行为不同于 IEEE®-754 标准中推荐的行为。

  MATLAB® IEEE

hypot(NaN,Inf)

NaN

Inf

hypot(NaN,-Inf)

NaN

Inf

hypot(Inf,NaN)

NaN

Inf

hypot(-Inf,NaN)

NaN

Inf

扩展功能

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| |