power, .^
按元素求幂
说明
示例
计算向量每个元素的平方
计算每个矩阵元素的倒数
创建矩阵 A
并求得每个元素的倒数。
A = [1 2 3; 4 5 6; 7 8 9]; C = A.^-1
C = 3×3
1.0000 0.5000 0.3333
0.2500 0.2000 0.1667
0.1429 0.1250 0.1111
元素的倒数不等于矩阵的逆矩阵,求逆矩阵应写成 A^-1
或 inv(A)
。
以列向量为指数对行向量按元素求幂
创建一个 1×2 行向量和一个 3×1 列向量,以列向量中的各元素为指数,求行向量中各元素的幂。
a = [2 3]; b = (1:3)'; a.^b
ans = 3×2
2 3
4 9
8 27
结果是 3×2 矩阵,该矩阵中的每个 (i,j) 元素等于 (j) .^ b(i)
:
计算数的根
计算 -1
的 1/3
次幂的根。
A = -1; B = 1/3; C = A.^B
C = 0.5000 + 0.8660i
对于负底数 A
和非整数 B
,power
函数返回复数结果。
使用 nthroot
函数可获取实数根。
C = nthroot(A,3)
C = -1
将一个表提升为另一个表的幂
自 R2023a 开始提供
创建两个表,并将第一个表提升为第二个表的幂。行名称(如果两者中都存在)和变量名称必须相同,但顺序不必相同。输出的行和变量与第一个输入的顺序相同。
A = table([1;2],[3;4],VariableNames=["V1","V2"],RowNames=["R1","R2"])
A=2×2 table
V1 V2
__ __
R1 1 3
R2 2 4
B = table([4;2],[3;1],VariableNames=["V2","V1"],RowNames=["R2","R1"])
B=2×2 table
V2 V1
__ __
R2 4 3
R1 2 1
C = A .^ B
C=2×2 table
V1 V2
__ ___
R1 1 9
R2 8 256
输入参数
A
, B
— 操作数
标量 | 向量 | 矩阵 | 多维数组 | 表 | 时间表
操作数,指定为标量、向量、矩阵、多维数组、表或时间表。A
和 B
必须具有相同的大小或具有兼容的大小(例如,A
是一个 M
×N
矩阵,B
是标量或 1
×N
行向量)。有关详细信息,请参阅基本运算的兼容数组大小。
整数数据类型的操作数不能为复数。
表或时间表形式的输入必须满足以下条件: (自 R2023a 起)
如果输入是表或时间表,则其所有变量都必须有支持该运算的数据类型。
如果只有一个输入是表或时间表,则另一个输入必须为数值或逻辑数组。
如果两个输入均为表或时间表,则:
两个输入必须具有相同的大小,或其中一个必须为单行表。
两个输入必须有相同名称的变量。但是,每个输入中的变量可以有不同的顺序。
如果两个输入均为表,并且都有行名称,则其行名称必须相同。但是,每个输入中的行名称可以有不同的顺序。
如果两个输入均为时间表,则其行时间必须相同。但是,每个输入中的行时间可以有不同的顺序。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| table
| timetable
复数支持: 是
详细信息
IEEE 合规性
对于实数输入,power
的一些行为不同于 IEEE®-754 标准中推荐的行为。
MATLAB® | IEEE | |
---|---|---|
|
|
|
|
|
|
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
此函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
当
X
和Y
都为实数,但power(X,Y)
是复数时,仿真将生成错误并且生成的代码将返回NaN
。要得到复数结果,需要通过complex(X)
来传递输入值X
,以使其变为复数。例如,power(complex(X),Y)
。当
X
和Y
都为实数,但X .^ Y
是复数时,仿真将生成错误并且生成的代码将返回NaN
。要得到复数结果,需要使用complex(X)
确保输入值X
为复数。例如,complex(X).^Y
。代码生成不支持对此函数使用稀疏矩阵输入。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
用法说明和限制:
当
X
和Y
都为实数,但power(X,Y)
是复数时,仿真将生成错误并且生成的代码将返回NaN
。要得到复数结果,需要通过complex(X)
来传递输入值X
,以使其变为复数。例如,power(complex(X),Y)
。当
X
和Y
都为实数,但X .^ Y
是复数时,仿真将生成错误并且生成的代码将返回NaN
。要得到复数结果,需要使用complex(X)
确保输入值X
为复数。例如,complex(X).^Y
。代码生成不支持对此函数使用稀疏矩阵输入。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
两个输入都必须为标量,指数输入 k
必须为整数。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
不支持 64 位整数。
如果基数
A
或指数B
是稀疏的,则B
必须为标量。
有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出R2023a: 直接对表和时间表执行运算
power
运算符支持直接对表和时间表执行运算,无效通过索引访问其变量。所有变量都必须具有支持该运算的数据类型。有关详细信息,请参阅Direct Calculations on Tables and Timetables。
R2016b: 隐式扩展更改会影响运算符的参量
从 R2016b 开始增加了隐式扩展,以前返回错误的基本运算的一些参量组合现在能够生成结果。例如,以前无法对行和列向量执行加法运算,但现在这些操作数对加法运算是有效的。换句话说,[1 2] + [1; 2]
之类的表达式以前会返回大小不匹配错误,但现在可以正常执行了。
如果您的代码使用按元素运算符并依赖 MATLAB 以前对不匹配大小返回的错误,尤其是在 try
/catch
块内,那么您的代码可能不再捕获这些错误。
有关基本数组运算要求的输入大小的详细信息,请参阅基本运算的兼容数组大小。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)