y=
fix (x)
¶
截断的小数部分x并返回整数部分。
这相当于向零取整。如果x很复数,返回fix (real (x)) + fix (imag (x)) * I
.
fix ([-2.7, 2.7]) ⇒ -2 2
y=
floor (x)
¶
返回不大于的最大整数x.
这相当于向负无穷大取整。如果xiscomplex,返回floor (real (x)) + floor (imag (x)) * I
.
floor ([-2.7, 2.7]) ⇒ -3 2
y=
round (x)
¶
返回最接近的整数x.
如果x很复数,返回round (real (x)) + round (imag (x)) * I
.如果有两个最接近的整数,则返回离零更远的一个。
round ([-2.7, 2.7]) ⇒ -3 3
y=
roundb (x)
¶
返回最接近的整数x。如果有两个接近的整数,则返回偶数(银行四舍五入)。
如果x很复数,返回roundb (real (x)) + roundb (imag (x)) * I
.
详见: round.
m=
max (x)
¶
m=
max (x, [],dim)
¶
[m,im] =
max (x)
¶
m=
max (x,y)
¶
在数组中查找最大值x.
对于向量参数,返回最大值。对于矩阵参数,返回具有每列最大值的行向量。对于二维数组,max
沿着第一非单重维度操作。
如果可选的第三个参数dim存在,则沿此维度操作。在这种情况下,第二个参数被忽略,并且应该被困扰到空矩阵。
对于两个输入(x和y),根据的规则返回成对的最大值Broadcasting.
因此
max (max (x))
返回二维矩阵的最大元素x和
max (2:5, pi) ⇒ 3.1416 3.1416 4.0000 5.0000
比较范围中的每个元素2:5
具有pi
,并返回最大值的arow向量。
对于复数的参数,元素的大小用于比较。如果幅度相同,则结果在(-pi,pi])范围内按相角排序。因此,
max ([-1 i 1 -i]) ⇒ -1
因为所有分量的大小都是1,但-1的相角最大,值为pi。
如果用一个输入和两个返回变量调用,max
还返回最大值的第一个索引。因此
[x, ix] = max ([1, 3, 5, 2, 5]) ⇒ x = 5 ix = 3
m=
min (x)
¶
m=
min (x, [],dim)
¶
[m,im] =
min (x)
¶
m=
min (x,y)
¶
在数组中查找最小值x.
对于向量参数,返回最小值。对于矩阵参数,返回具有每列最小值的行向量。对于二维数组,min
沿着第一非单重维度操作。
如果可选的第三个参数dim存在,则沿此维度操作。在这种情况下,第二个参数被忽略,并且应该被困扰到空矩阵。
对于两个输入(x和y),根据的规则返回成对的最小值Broadcasting.
因此
min (min (x))
返回二维矩阵的最小元素x和
min (2:5, pi) ⇒ 2.0000 3.0000 3.1416 3.1416
比较范围中的每个元素2:5
具有pi
,并返回最小值的arow向量。
对于复数的参数,元素的大小用于比较。如果幅度相同,则结果在(-pi,pi])范围内按相角排序。因此,
min ([-1 i 1 -i]) ⇒ -i
因为所有分量的大小都是1,但-i的相角最小,值为-pi/2。
如果用一个输入和两个返回变量调用,min
还返回最小值的第一个索引。因此
[x, ix] = min ([1, 3, 0, 2, 0]) ⇒ x = 0 ix = 3
M=
cummax (x)
¶
M=
cummax (x,dim)
¶
[M,IM] =
cummax (…)
¶
返回沿维度的累积最大值dim.
如果dim未指定,则默认为按列操作。例如:
cummax ([1 3 2 6 4 5]) ⇒ 1 3 3 6 6 6
如果使用两个输出参数调用,则还会返回最大值的索引。
[w, iw] = cummax ([1 3 2 6 4 5]) ⇒ M = 1 3 3 6 6 6 IM = 1 2 2 4 4 4
M=
cummin (x)
¶
M=
cummin (x,dim)
¶
[M,IM] =
cummin (x)
¶
返回沿维度的累积最小值dim.
如果dim未指定,则默认为按列操作。例如:
cummin ([5 4 6 2 3 1]) ⇒ 5 4 4 2 2 1
如果使用两个输出参数调用,则还会返回最小值的索引。
[M, IM] = cummin ([5 4 6 2 3 1]) ⇒ M = 5 4 4 2 2 1 IM = 1 2 2 4 4 6
h=
hypot (x,y)
¶
h=
hypot (x,y,z, …)
¶
按元素计算的平方和的平方根x和y.
这相当于sqrt (x.^2 + y.^2)
,但是以避免大值溢出的方式进行计算x或y.
hypot
也可以用两个以上的参数调用;在这种情况下,参数是从左到右累积的:
hypot (hypot (x, y), z) hypot (hypot (hypot (x, y), z), w), etc.
dx=
gradient (m)
¶
[dx,dy,dz, …] =
gradient (m)
¶
[…] =
gradient (m,s)
¶
[…] =
gradient (m,x,y,z, …)
¶
[…] =
gradient (f,x0)
¶
[…] =
gradient (f,x0,s)
¶
[…] =
gradient (f,x0,x,y, …)
¶
计算采样数据或函数的梯度。
如果m是一个向量,计算的一维梯度m如果m是为每个维度计算梯度的矩阵。
[dx, dy] = gradient (m)
计算的一维梯度x和y方向如果m是amatrix。其他返回参数可用于多维图。
两点之间的恒定间距可以通过s参数如果s是一个标量,它被假定为所有维度的间距。否则,可以从提供单独的间距值x,…参数。标量值指定等间距。的向量值x,…参数指定该维度的坐标。长度必须与其相应的尺寸相匹配m.
在边界点应用线性外推法。使用数值梯度的第一近似值计算内部点
y'(i) = 1/(x(i+1)-x(i-1)) * (y(i-1)-y(i+1)).
如果第一个参数f是一个函数句柄,函数在中的点处的梯度x0使用中心差来近似。例如gradient (@cos, 0)
近似正弦函数在点上的梯度x0=0与采样数据一样,可以通过s或dx,dy,…参数。默认情况下,使用间距1。
z=
dot (x,y)
¶
z=
dot (x,y,dim)
¶
计算两个向量的点积。
如果x和y是矩阵,计算沿着第一个非奇异维度的点积。
如果可选参数dim给出了,计算了该尺寸上的点积。
支持说明:这相当于sum (conj (X) .* Y, dim)
,但是避免了形成多个数组并且速度更快。当X和Y是列向量,结果等效于X' * Y
虽然dot
是为整数数组定义的,因为整数对象的范围有限,输出可能与预期结果不同。
详见: cross,divergence,tensorprod.
z=
cross (x,y)
¶
z=
cross (x,y,dim)
¶
计算两个三维向量的向量叉积x和y.
如果x和y是矩阵,叉积沿着第一维度应用于三个元素。
可选参数dim强制计算指定尺寸的叉积。如果维度 不是三维则报错。
示例代码:
cross ([1, 1, 0], [0, 1, 1]) ⇒ 1 -1 1
cross (magic (3), eye (3), 2) ⇒ 0 6 -1 -7 0 3 9 -4 0
详见: dot,curl,divergence.
div=
divergence (x,y,z,fx,fy,fz)
¶
div=
divergence (fx,fy,fz)
¶
div=
divergence (x,y,fx,fy)
¶
div=
divergence (fx,fy)
¶
计算数组给出的向量场的散度fx,fy和fz或fx,fy分别地
d d d div F(x,y,z) = -- F(x,y,z) + -- F(x,y,z) + -- F(x,y,z) dx dy dz
向量场的坐标可以从参数给出x,y,z或x,y分别地
[cx,cy,cz,v] =
curl (x,y,z,fx,fy,fz)
¶
[cz,v] =
curl (x,y,fx,fy)
¶
[…] =
curl (fx,fy,fz)
¶
[…] =
curl (fx,fy)
¶
v=
curl (…)
¶
计算数组给出的向量场的旋度fx,fy和fz或fx,fy分别地
/ d d d d d d \ curl F(x,y,z) = | -- Fz - -- Fy, -- Fx - -- Fz, -- Fy - -- Fx | \ dy dz dz dx dx dy /
向量场的坐标可以从参数给出x,y,z或x,y分别地v计算二维输入的角速度向量在z轴方上级标量分量。对于三维输入,在向量场方上级每个网格点上计算标量化。
详见: divergence,gradient,del2,cross.
L=
del2 (M)
¶
L=
del2 (M,h)
¶
L=
del2 (M,dx,dy, …)
¶
计算离散拉普拉斯算子。
对于二维矩阵M这被定义为
1 / d^2 d^2 \ L = --- * | --- M(x,y) + --- M(x,y) | 4 \ dx^2 dy^2 /
对于N维数组,括号中的和被扩展为包括附加的更高维度上的二阶导数。
评估点之间的间距可以定义为h,定义了所有维度上的等距间距。或者,每个维度中的间距可以通过以下方式单独定义dx,dy等。标量间距自变量定义等距间距,而向量自变量可用于指定可变间距。间距向量的长度必须与的相应尺寸相匹配M。默认间距值为1。
跳过数据点少于3个的维度。边界点是根据内部点的线性外推法计算的。
示例:2*x^3的二阶导数
f = @(x) 2*x.^3; dd = @(x) 12*x; x = 1:6; L = 4*del2 (f(x)); assert (L, dd (x));
f=
factorial (n)
¶
返回的阶乘n这里的n是一个真正的非否定的接受者。
如果n是标量,这等效于prod (1:n)
。对于向量或矩阵参数,返回数组中每个元素的阶乘。
对于非整数,详见广义阶乘函数gamma
请注意,阶乘函数增长得很快,即使使用双精度值,如果n> 171. Forsuch案例考虑gammaln
.
pf=
factor (q)
¶
[pf,n] =
factor (q)
¶
返回的素数因子分解q.
素数因子分解定义为prod (pf) == q
其中的每个元素pf是一个素数。如果q == 1
,返回1。输出pf与输入属于相同的数字类。
使用两个输出参数,返回唯一的素数pf及其多样性。也就是说,prod (pf .^ n) == q
.
支持说明:如果输入q是single
或double
,则不得超过相应的flintmax
。对于较大的输入,请将其投射到uint64
如果它们小于2^64:
factor (uint64 (18446744073709011493)) ⇒ 571111 761213 42431951
对于更大的输入,使用sym
如果已安装并加载符号包:
factor (sym ('9444733049654361449941')) ⇒ (sym) 1 1 1099511627689 ⋅8589934669
g=
gcd (a1,a2, …)
¶
[g,v1, …] =
gcd (a1,a2, …)
¶
计算的最大公约数a1,a2, ….
所有参数的大小或标量必须相同。对于数组,将分别为每个元素计算最大公约数。所有元素都必须是普通整数或高斯(复数)整数。注意,对于高斯整数,gcd仅在相位因子(乘以1、-1、i或-i)之前是唯一的,因此返回四个可能的整数中的任意最大公约数。
可选的返回参数v1,…,包含整数向量,
g = v1 .* a1 + v2 .* a2 + ...
示例代码:
gcd ([15, 9], [20, 18]) ⇒ 5 9
编程提示:要查找单个数组中所有元素的GCD,请使用num2cell
而不是嵌套调用或循环:
x = [30 42 70 105]; # vector or array of inputs gcd (num2cell (x) {:}) ⇒ 1
l=
lcm (x,y)
¶
l=
lcm (x,y, …)
¶
计算的最小公倍数x和y,或所有参数列表的。
所有输入必须具有相同的大小或标量。所有元素都必须是贝雷阿尔整数或高斯(复数)整数。对于复数输入,结果仅在相位因子(乘以+1、+i、-1或-i)之前是唯一的,并且四个结果中的一个是任意返回的。
示例代码:
lcm (5:8, 9:12) ⇒ 45 30 77 24
编程提示:要查找单个数组的所有元素的LCM,请使用num2cell
而不是嵌套调用或循环:
x = 1:10; # vector or array of inputs lcm (num2cell (x) {:}) ⇒ 2520
r=
rem (x,y)
¶
返回除法的余数x / y
.
余数使用以下表达式计算
x - y .* fix (x ./ y)
如果参数的维度不一致,或者其中一个参数很复数,则会打印错误消息。
编程注意事项:当使用浮点数(双、单)进行计算时,为了与兼容,整数的几个eps内的值将在计算前四舍五入到该整数MATLAB.任何大于的浮点整数flintmax
(2^53表示双)计算不正确。对于较大的整数值,将输入转换为uint64
在调用此函数之前。
按照惯例,
rem (x, 0) = NaN if x is a floating point variable rem (x, 0) = 0 if x is an integer variable rem (x, y) returns a value with the signbit from x
有关相反的约定,详见mod
作用一般来说rem
在计算除以二后的余数时最好正乐观的数字。对于负数或当值是周期性的时,mod
是一个更好的选择。
详见: mod.
m=
mod (x,y)
¶
计算的模x和y.
从概念上讲,这是从
x - y .* floor (x ./ y)
并且被写入使得对于整数类型返回正确的模数。此函数可正确处理负值。也就是说,mod (-1, 3)
是2,而不是-1,因为rem (-1, 3)
返回。
如果参数的维度不一致,或者其中一个参数很复数,则会导致错误。
编程注意事项:当使用浮点数(双、单)进行计算时,为了与兼容,整数的几个eps内的值将在计算前四舍五入到该整数MATLAB.任何大于的浮点整数flintmax
(2^53表示双)计算不正确。对于较大的整数值,将输入转换为uint64
在调用此函数之前。
按照惯例,
mod (x, 0) = x mod (x, y) returns a value with the signbit from y
有关相反的约定,详见rem
作用一般来说mod
是比rem
当任何输入是负数时,或者当值是周期性的时。
详见: rem.
p=
primes (n)
¶
将所有素数返回到n.
输出数据类(double、single、uint32等)与的输入类相同n所使用的算法是Eratosthenes筛。
注:对于特定数字n的素数,调用list_primes (n)
。或者,调用primes (n*log (k*n))(1:n)
这里的kisabout 5或6。这是因为从一个素数到下一个素数的距离平均与素数的对数成正比。关于集成,大约有n素数小于n * log (5*n)
.
详见: list_primes,isprime.
y=
sign (x)
¶
计算signum作用
这被定义为
-1, x < 0; sign (x) = 0, x = 0; 1, x > 0.
对于复数的参数,sign
返回x ./ abs (x)
.
请注意sign (-0.0)
为0。尽管IEEE 754浮点允许对零进行赋值,但0.0和-0.0比较起来是相等的。如果必须测试零是否已赋值,请使用signbit
作用
详见: signbit.
y=
signbit (x)
¶
如果的值为,则返回逻辑truex设置了其符号位,否则为false。
此行为与其他逻辑函数一致。详见逻辑值该行为不同于C语言函数,如果设置了符号位,则C语言函数返回非零。
这与x < 0.0
,因为IEEE 754浮点允许对零进行赋值。比较-0.0 < 0.0
是假的,但是signbit (-0.0)
将返回一个非零值。
详见: sign.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2