原子函数

本教程的这一部分描述了可以应用于CVXPY表达式的原子函数。CVXPY使用本节中的函数信息和DCP规则来标记表达式的符号和曲率。

操作符

中缀运算符 +, -, *, /, @ 被视为函数。运算符 +- 始终是仿射函数。表达式 expr1*expr2 在 CVXPY 中当其中一个表达式是常数时是仿射的,而 expr1/expr2 是仿射的 当 expr2 是一个标量常数时。

历史上,CVXPY 使用 expr1 * expr2 来表示矩阵乘法。 现在这种做法已被弃用。从 Python 3.5 开始,用户可以写 expr1 @ expr2 来表示矩阵乘法和点积。 从 CVXPY 1.1 版本开始,我们采用了一个新的标准:

  • @ 应该用于矩阵-矩阵和矩阵-向量的乘法,

  • * 应该是矩阵-标量和向量-标量乘法

元素乘法可以使用multiply函数来应用。

索引和切片

CVXPY 中的索引遵循与 NumPy ndarrays 完全相同的语义。 例如,如果 expr 的形状为 (5,),那么 expr[1] 将给出第二个条目。 更一般地,expr[i:j:k] 选择 expr 的每第 k 个元素,从 i 开始,到 j-1 结束。 如果 expr 是一个矩阵,那么 expr[i:j:k] 选择行, 而 expr[i:j:k, r:s:t] 同时选择行和列。 索引会减少维度,而切片会保留维度。 例如,

x = cvxpy.Variable(5)
print("0 dimensional", x[0].shape)
print("1 dimensional", x[0:1].shape)
O dimensional: ()
1 dimensional: (1,)

转置

任何表达式的转置都可以使用语法 expr.T 获得。转置是一个仿射函数。

功率

对于任何CVXPY表达式expr,幂运算符expr**p等同于函数power(expr, p)

标量函数

标量函数接受一个或多个标量、向量或矩阵作为参数,并返回一个标量。

函数

意义

领域

DCP 属性

曲率

cvar(x, beta)

平均值为 \((1-\beta)\)

\(x\) 中最大值的比例

\(x \in \mathbf{R}^m\)

\(\beta \in (0,1)\)

符号取决于 \(x\)

incr 增加。

convex

dotsort(X,W)

常数 \(W \in \mathbf{R}^{o \times p}\)

\(\text{点积}\) \(\operatorname{sort}\operatorname{vec}(X) \text{ 和}\) \(\operatorname{sort}\operatorname{vec}(W)\)

\(X \in \mathbf{R}^{m \times n}\)

符号取决于

\(X\)\(W\)

incr\(\min(W) \geq 0\)

decr\(\max(W) \leq 0\)

convex

geo_mean(x)

geo_mean(x, p)

\(p \in \mathbf{R}^n_{+}\)

\(p \neq 0\)

\(x_1^{1/n} \cdots x_n^{1/n}\)

\(\left(x_1^{p_1} \cdots x_n^{p_n}\right)^{\frac{1}{\mathbf{1}^T p}}\)

\(x \in \mathbf{R}^n_{+}\)

positive 正面的

incr 增加。

concave 凹面

harmonic_mean(x)

\(\frac{n}{\frac{1}{x_1} + \cdots + \frac{1}{x_n}}\)

\(x \in \mathbf{R}^n_{+}\)

positive 正面的

incr 增加。

concave 凹面

inv_prod(x)

\((x_1\cdots x_n)^{-1}\)

\(x \in \mathbf{R}^n_+\)

positive 正面的

decr 减少。

convex

lambda_max(X)

\(\lambda_{\max}(X)\)

\(X \in \mathbf{S}^n\)

unknown 未知符号

convex

lambda_min(X)

\(\lambda_{\min}(X)\)

\(X \in \mathbf{S}^n\)

unknown 未知符号

concave 凹面

lambda_sum_largest(X,k)

\(k = 1,\ldots, n\)

\(\text{sum of $k$ largest}\) \(\text{eigenvalues of $X$}\)

\(X \in\mathbf{S}^{n}\)

unknown 未知符号

convex

lambda_sum_smallest(X,k)

\(k = 1,\ldots, n\)

\(\text{sum of $k$ smallest}\) \(\text{eigenvalues of $X$}\)

\(X \in\mathbf{S}^{n}\)

unknown 未知符号

concave 凹面

log_det(X)

\(\log \left(\det (X)\right)\)

\(X \in \mathbf{S}^n_+\)

unknown 未知符号

concave 凹面

log_sum_exp(X)

\(\log \left(\sum_{ij}e^{X_{ij}}\right)\)

\(X \in\mathbf{R}^{m \times n}\)

unknown 未知符号

incr 增加。

convex

matrix_frac(x, P)

\(x^T P^{-1} x\)

\(x \in \mathbf{R}^n\)

\(P \in\mathbf{S}^n_{++}\)

positive 正面的

convex

max(X)

\(\max_{ij}\left\{ X_{ij}\right\}\)

\(X \in\mathbf{R}^{m \times n}\)

与X同号

incr 增加。

convex

mean(X)

\(\frac{1}{m n}\sum_{ij}\left\{ X_{ij}\right\}\)

\(X \in\mathbf{R}^{m \times n}\)

与X同号

incr 增加。

affine 仿射

min(X)

\(\min_{ij}\left\{ X_{ij}\right\}\)

\(X \in\mathbf{R}^{m \times n}\)

与X同号

incr 增加。

concave 凹面

mixed_norm(X, p, q)

\(Y = \left(\sum_l\lvert x_{k,l}\rvert^p\right)\)

\(\left(\sum_k Y^{q/p}\right)^{1/q}\)

\(X \in\mathbf{R}^{n \times n}\)

positive 正面的

convex

norm(x)

norm(x, 2)

\(\sqrt{\sum_{i} \lvert x_{i} \rvert^2 }\)

\(X \in\mathbf{R}^{n}\)

positive 正面的

incr 对于 \(x_{i} \geq 0\)

decr\(x_{i} \leq 0\)

convex

norm(x, 1)

\(\sum_{i}\lvert x_{i} \rvert\)

\(x \in\mathbf{R}^{n}\)

positive 正面的

incr 对于 \(x_{i} \geq 0\)

decr 对于 \(x_{i} \leq 0\)

convex

norm(x, “inf”)

\(\max_{i} \{\lvert x_{i} \rvert\}\)

\(x \in\mathbf{R}^{n}\)

positive 正面的

incr 对于 \(x_{i} \geq 0\)

decr\(x_{i} \leq 0\)

convex

norm(X, “fro”)

\(\sqrt{\sum_{ij}X_{ij}^2 }\)

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

incr 对于 \(X_{ij} \geq 0\)

decr\(X_{ij} \leq 0\)

convex

norm(X, 1)

\(\max_{j} \|X_{:,j}\|_1\)

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

incr 对于 \(X_{ij} \geq 0\)

decr\(X_{ij} \leq 0\)

convex

norm(X, “inf”)

\(\max_{i} \|X_{i,:}\|_1\)

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

incr 对于 \(X_{ij} \geq 0\)

decr\(X_{ij} \leq 0\)

convex

norm(X, “nuc”)

\(\mathrm{tr}\left(\left(X^T X\right)^{1/2}\right)\)

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

convex

norm(X)

norm(X, 2)

\(\sqrt{\lambda_{\max}\left(X^T X\right)}\)

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

convex

perspective(f(x),s)

\(sf(x/s)\)

\(x \in \mathop{\bf dom} f\)

\(s \geq 0\)

与f同号

convex / concave

\(f\) 相同

pnorm(X, p)

\(p \geq 1\)

p = 'inf'

\(\left(\sum_{ij} |X_{ij}|^p \right)^{1/p}\)

\(X \in \mathbf{R}^{m \times n}\)

positive 正面的

incr 对于 \(X_{ij} \geq 0\)

decr\(X_{ij} \leq 0\)

convex

pnorm(X, p)

\(p < 1\), \(p \neq 0\)

\(\left(\sum_{ij} X_{ij}^p \right)^{1/p}\)

\(X \in \mathbf{R}^{m \times n}_+\)

positive 正面的

incr 增加。

concave 凹面

ptp(X)

\(\max_{ij} X_{ij}\)

\(- \min_{ij} X_{ij}\)

\(X \in \mathbf{R}^{m \times n}\)

positive 正面的

convex

quad_form(x, P)

常数 \(P \in \mathbf{S}^n_+\)

\(x^T P x\)

\(x \in \mathbf{R}^n\)

positive 正面的

incr 对于 \(x_i \geq 0\)

decr 对于 \(x_i \leq 0\)

convex

quad_form(x, P)

常数 \(P \in \mathbf{S}^n_-\)

\(x^T P x\)

\(x \in \mathbf{R}^n\)

negative 负值

decr 对于 \(x_i \geq 0\)

incr\(x_i \leq 0\)

concave 凹面

quad_form(c, X)

常数 \(c \in \mathbf{R}^n\)

\(c^T X c\)

\(X \in\mathbf{R}^{n \times n}\)

符号取决于 c, X

单调性取决于c

affine 仿射

quad_over_lin(X, y)

\(\left(\sum_{ij}X_{ij}^2\right)/y\)

\(x \in \mathbf{R}^n\)

\(y > 0\)

positive 正面的

incr 对于 \(X_{ij} \geq 0\)

decr\(X_{ij} \leq 0\)

decr\(y\) 中减少

convex

std(X)

类似于 numpy.std

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

convex

sum(X)

\(\sum_{ij}X_{ij}\)

\(X \in\mathbf{R}^{m \times n}\)

与X同号

incr 增加。

affine 仿射

sum_largest(X, k)

\(k = 1,2,\ldots\)

\(\text{sum of } k\text{ largest }X_{ij}\)

\(X \in\mathbf{R}^{m \times n}\)

与X同号

incr 增加。

convex

sum_smallest(X, k)

\(k = 1,2,\ldots\)

\(\text{sum of } k\text{ smallest }X_{ij}\)

\(X \in\mathbf{R}^{m \times n}\)

与X同号

incr 增加。

concave 凹面

sum_squares(X)

\(\sum_{ij}X_{ij}^2\)

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

incr 对于 \(X_{ij} \geq 0\)

decr\(X_{ij} \leq 0\)

convex

trace(X)

\(\mathrm{tr}\left(X \right)\)

\(X \in\mathbf{R}^{n \times n}\)

与X同号

incr 增加。

affine 仿射

tr_inv(X)

\(\mathrm{tr}\left(X^{-1} \right)\)

\(X \in\mathbf{S}^n_{++}\)

positive 正面的

convex

tv(x)

\(\sum_{i}|x_{i+1} - x_i|\)

\(x \in \mathbf{R}^n\)

positive 正面的

convex

tv(X) \(Y = \left[\begin{matrix} X_{i+1,j} - X_{ij} \\ X_{i,j+1} -X_{ij} \end{matrix}\right]\)

\(\sum_{ij}\left\| Y \right\|_2\)

\(X \in \mathbf{R}^{m \times n}\)

positive 正面的

convex

tv([X1,…,Xk]) \(Y = \left[\begin{matrix} X_{i+1,j}^{(1)} - X_{ij}^{(1)} \\ X_{i,j+1}^{(1)} -X_{ij}^{(1)} \\ \vdots \\ X_{i+1,j}^{(k)} - X_{ij}^{(k)} \\ X_{i,j+1}^{(k)} -X_{ij}^{(k)} \end{matrix}\right]\)

\(\sum_{ij}\left\| Y \right\|_2\)

\(X^{(i)} \in\mathbf{R}^{m \times n}\)

positive 正面的

convex

var(X)

类似于 numpy.var

\(X \in\mathbf{R}^{m \times n}\)

positive 正面的

convex

von_neumann_entr(X)

\(-\operatorname{tr}(X\operatorname{logm}(X))\)

\(X \in \mathbf{S}^{n}_+\)

unknown 未知符号

concave 凹面

标量函数的澄清

\(\mathbf{S}^n\) 指的是对称矩阵的集合。域 \(\mathbf{S}^n_+\)\(\mathbf{S}^n_-\) 分别指的是半正定矩阵和半负定矩阵的集合。同样地,\(\mathbf{S}^n_{++}\)\(\mathbf{S}^n_{--}\) 分别指的是正定矩阵和负定矩阵的集合。

对于一个向量表达式 xnorm(x)norm(x, 2) 给出欧几里得范数。然而,对于一个矩阵表达式 Xnorm(X)norm(X, 2) 给出谱范数。

函数 norm(X, "fro") 被称为 Frobenius 范数, 而 norm(X, "nuc") 被称为 核范数。核范数也可以定义为 X 的奇异值之和。

函数 maxmin 分别给出单个表达式中的最大和最小项。这些函数不应与 maximumminimum 混淆(参见 Elementwise functions)。使用 maximumminimum 来查找标量表达式列表的最大值或最小值。

CVXPY函数sum用于对单个表达式中的所有条目进行求和。内置的Python sum应该用于将表达式列表相加。例如,以下代码对三个表达式的列表进行求和:

expr_list = [expr1, expr2, expr3]
expr_sum = sum(expr_list)

沿轴函数

函数 sum, norm, max, min, mean, std, var, 和 ptp 可以沿着一个轴应用。 给定一个 mn 的表达式 expr,语法 func(expr, axis=0, keepdims=True)func 应用于每一列,返回一个 1 乘 n 的表达式。 语法 func(expr, axis=1, keepdims=True)func 应用于每一行,返回一个 m 乘 1 的表达式。 默认情况下 keepdims=False,这意味着长度为 1 的维度会被丢弃。 例如,以下代码对矩阵变量的列和行进行求和:

X = cvxpy.Variable((5, 4))
col_sums = cvxpy.sum(X, axis=0, keepdims=True) # Has size (1, 4)
col_sums = cvxpy.sum(X, axis=0) # Has size (4,)
row_sums = cvxpy.sum(X, axis=1) # Has size (5,)

逐元素函数

这些函数对其参数的每个元素进行操作。例如,如果X是一个5行4列的矩阵变量, 那么abs(X)就是一个5行4列的矩阵表达式。abs(X)[1, 2]等同于abs(X[1, 2])

接受多个参数的逐元素函数,例如maximummultiply,对每个参数的相应元素进行操作。 例如,如果XY都是3乘3的矩阵变量,那么maximum(X, Y)是一个3乘3的矩阵表达式。 maximum(X, Y)[2, 0]等同于maximum(X[2, 0], Y[2, 0])。这意味着所有参数必须具有相同的维度或者是标量,标量会被提升。

函数

意义

领域

DCP 属性

曲率

abs(x)

\(\lvert x \rvert\)

\(x \in \mathbf{C}\)

positive 正面的

incr 对于 \(x \geq 0\)

decr 对于 \(x \leq 0\)

convex

conj(x)

复共轭

\(x \in \mathbf{C}\)

unknown 未知符号

affine 仿射

entr(x)

\(-x \log (x)\)

\(x > 0\)

unknown 未知符号

concave 凹面

exp(x)

\(e^x\)

\(x \in \mathbf{R}\)

positive 正面的

incr 增加。

convex

huber(x, M=1)

\(M \geq 0\)

\(\begin{cases}x^2 &|x| \leq M \\2M|x| - M^2&|x| >M\end{cases}\)

\(x \in \mathbf{R}\)

positive 正面的

incr 对于 \(x \geq 0\)

decr 对于 \(x \leq 0\)

convex

imag(x)

复数的虚部

\(x \in \mathbf{C}\)

unknown 未知符号

affine 仿射

inv_pos(x)

\(1/x\)

\(x > 0\)

positive 正面的

decr 减少。

convex

kl_div(x, y)

\(x \log(x/y) - x + y\)

\(x > 0\)

\(y > 0\)

positive 正面的

convex

log(x)

\(\log(x)\)

\(x > 0\)

unknown 未知符号

incr 增加。

concave 凹面

log_normcdf(x)

approximate 标准正态CDF的对数

\(x \in \mathbf{R}\)

negative 负值

incr 增加。

concave 凹面

log1p(x)

\(\log(x+1)\)

\(x > -1\)

与x同号

incr 增加。

concave 凹面

loggamma(x)

近似 Gamma函数的对数

\(x > 0\)

unknown 未知符号

convex

logistic(x)

\(\log(1 + e^{x})\)

\(x \in \mathbf{R}\)

positive 正面的

incr 增加。

convex

maximum(x, y)

\(\max \left\{x, y\right\}\)

\(x,y \in \mathbf{R}\)

符号取决于x,y

incr 增加。

convex

minimum(x, y)

\(\min \left\{x, y\right\}\)

\(x, y \in \mathbf{R}\)

符号取决于x,y

incr 增加。

concave 凹面

multiply(c, x)

\(c \in \mathbf{R}\)

c*x

\(x \in\mathbf{R}\)

\(\mathrm{sign}(cx)\)

单调性取决于c

affine 仿射

neg(x)

\(\max \left\{-x, 0 \right\}\)

\(x \in \mathbf{R}\)

positive 正面的

decr 减少。

convex

pos(x)

\(\max \left\{x, 0 \right\}\)

\(x \in \mathbf{R}\)

positive 正面的

incr 增加。

convex

power(x, 0)

\(1\)

\(x \in \mathbf{R}\)

positive 正面的

常量

power(x, 1)

\(x\)

\(x \in \mathbf{R}\)

与x同号

incr 增加。

affine 仿射

power(x, p)

\(p = 2, 4, 8, \ldots\)

\(x^p\)

\(x \in \mathbf{R}\)

positive 正面的

incr 对于 \(x \geq 0\)

decr 对于 \(x \leq 0\)

convex

power(x, p)

\(p < 0\)

\(x^p\)

\(x > 0\)

positive 正面的

decr 减少。

convex

power(x, p)

\(0 < p < 1\)

\(x^p\)

\(x \geq 0\)

positive 正面的

incr 增加。

concave 凹面

power(x, p)

\(p > 1,\ p \neq 2, 4, 8, \ldots\)

\(x^p\)

\(x \geq 0\)

positive 正面的

incr 增加。

convex

real(x)

复数的实部

\(x \in \mathbf{C}\)

unknown 未知

incr 增加。

affine 仿射

rel_entr(x, y)

\(x \log(x/y)\)

\(x > 0\)

\(y > 0\)

unknown 未知符号

decr\(y\)

convex

scalene(x, alpha, beta)

\(\text{alpha} \geq 0\)

\(\text{beta} \geq 0\)

\(\alpha\mathrm{pos}(x)+ \beta\mathrm{neg}(x)\)

\(x \in \mathbf{R}\)

positive 正面的

incr 对于 \(x \geq 0\)

decr 对于 \(x \leq 0\)

convex

sqrt(x)

\(\sqrt x\)

\(x \geq 0\)

positive 正面的

incr 增加。

concave 凹面

square(x)

\(x^2\)

\(x \in \mathbf{R}\)

positive 正面的

incr 对于 \(x \geq 0\)

decr 对于 \(x \leq 0\)

convex

xexp(x)

\(x e^x\)

\(x \geq 0\)

positive 正面的

incr 增加。

convex

关于逐元素函数的说明

函数 log_normcdfloggamma 是通过近似定义的。log_normcdf 在 -4 到 4 的范围内具有最高的精度, 而 loggamma 在所有正实数上具有相似的精度。 有关近似的详细信息,请参见 CVXPY GitHub PR #1224CVXPY GitHub Issue #228

向量/矩阵函数

向量/矩阵函数接受一个或多个标量、向量或矩阵作为参数,并返回一个向量或矩阵。

CVXPY 在确定由这些函数返回的表达式的符号时是保守的。 如果这些函数的任何参数具有未知符号,则返回的表达式也将具有未知符号。 如果所有参数都具有已知符号,但 CVXPY 可以确定返回的表达式在不同条目中会有不同的符号(例如,当堆叠一个正表达式和一个负表达式时),则返回的表达式将具有未知符号。

函数

意义

领域

曲率

单调性

bmat([[X11,…,X1q], …, [Xp1,…,Xpq]])

\(\left[\begin{matrix} X^{(1,1)} & \cdots & X^{(1,q)} \\ \vdots & & \vdots \\ X^{(p,1)} & \cdots & X^{(p,q)} \end{matrix}\right]\)

\(X^{(i,j)} \in\mathbf{R}^{m_i \times n_j}\)

affine 仿射

incr 增加。

convolve(c, x)

\(c\in\mathbf{R}^m\)

\(c*x\)

\(x\in \mathbf{R}^n\)

affine 仿射

依赖于c

cumsum(X, axis=0)

沿给定轴的累积和。

\(X \in \mathbf{R}^{m \times n}\)

affine 仿射

incr 增加。

diag(x)

\(\left[\begin{matrix}x_1 & & \\& \ddots & \\& & x_n\end{matrix}\right]\)

\(x \in\mathbf{R}^{n}\)

affine 仿射

incr 增加。

diag(X)

\(\left[\begin{matrix}X_{11} \\\vdots \\X_{nn}\end{matrix}\right]\)

\(X \in\mathbf{R}^{n \times n}\)

affine 仿射

incr 增加。

diff(X, k=1, axis=0)

\(k \in 0,1,2,\ldots\)

沿给定轴的第k阶差分

\(X \in\mathbf{R}^{m \times n}\)

affine 仿射

incr 增加。

hstack([X1, …, Xk])

\(\left[\begin{matrix}X^{(1)} \cdots X^{(k)}\end{matrix}\right]\)

\(X^{(i)} \in\mathbf{R}^{m \times n_i}\)

affine 仿射

incr 增加。

kron(X, Y)

常数 \(X\in\mathbf{R}^{p \times q}\)

\(\left[\begin{matrix}X_{11}Y & \cdots & X_{1q}Y \\ \vdots & & \vdots \\ X_{p1}Y & \cdots & X_{pq}Y \end{matrix}\right]\)

\(Y \in \mathbf{R}^{m \times n}\)

affine 仿射

依赖于 \(X\)

kron(X, Y)

常数 \(Y\in\mathbf{R}^{m \times n}\)

\(\left[\begin{matrix}X_{11}Y & \cdots & X_{1q}Y \\ \vdots & & \vdots \\ X_{p1}Y & \cdots & X_{pq}Y \end{matrix}\right]\)

\(X \in \mathbf{R}^{p \times q}\)

affine 仿射

取决于 \(Y\)

outer(x, y)

常数 \(y \in \mathbf{R}^m\)

\(x y^T\)

\(x \in \mathbf{R}^n\)

affine 仿射

取决于 \(y\)

partial_trace(X, dims, axis=0)

部分追踪

\(X \in\mathbf{R}^{n \times n}\)

affine 仿射

incr 增加。

partial_transpose(X, dims, axis=0)

部分转置

\(X \in\mathbf{R}^{n \times n}\)

affine 仿射

incr 增加。

reshape(X, (m’, n’), order=’F’)

\(X' \in\mathbf{R}^{m' \times n'}\)

\(X \in\mathbf{R}^{m \times n}\)

\(m'n' = mn\)

affine 仿射

incr 增加。

upper_tri(X)

展平\(X\)的严格上三角部分

\(X \in \mathbf{R}^{n \times n}\)

affine 仿射

incr 增加。

vec(X)

\(x' \in\mathbf{R}^{mn}\)

\(X \in\mathbf{R}^{m \times n}\)

affine 仿射

incr 增加。

vec_to_upper_tri(X, strict=False)

\(x' \in\mathbf{R}^{n(n-1)/2}\)strict=True

\(x' \in\mathbf{R}^{n(n+1)/2}\) 对于 strict=False

\(X \in\mathbf{R}^{n \times n}\)

affine 仿射

incr 增加。

vstack([X1, …, Xk])

\(\left[\begin{matrix}X^{(1)} \\ \vdots \\X^{(k)}\end{matrix}\right]\)

\(X^{(i)} \in\mathbf{R}^{m_i \times n}\)

affine 仿射

incr 增加。

关于向量和矩阵函数的说明

输入到 \(\texttt{bmat}\) 的是一个CVXPY表达式的列表的列表。 它构造了一个块矩阵。 每个内部列表的元素水平堆叠,然后生成的块矩阵垂直堆叠。

输出 \(y = \texttt{convolve}(c, x)\) 的大小为 \(n+m-1\),并定义为 \(y_k =\sum_{j=0}^{k} c[j]x[k-j]\)

输出 \(y = \texttt{vec}(X)\) 是将矩阵 \(X\) 按列主序展平为一个向量。 形式上,\(y_i = X_{i \bmod{m}, \left \lfloor{i/m}\right \rfloor }\)

输出 \(Y = \texttt{reshape}(X, (m', n'), \text{order='F'})\) 是将矩阵 \(X\) 转换为一个 \(m' \times n'\) 矩阵。 元素按列优先顺序从 \(X\) 中取出,并按列优先顺序存储在 \(Y\) 中。 形式上,\(Y_{ij} = \texttt{vec}(X)_{m'j + i}\)。 如果 order=’C’,则 \(X\) 将按行优先顺序读取,并且 \(Y\) 将按行优先顺序写入。

输出 \(y = \texttt{upper_tri}(X)\) 是通过连接 \(X\) 的部分行形成的。 即,\(y = (X[0,1{:}],\, X[1, 2{:}],\, \ldots, X[n-1, n])\)