MATLAB - 转置运算符

MATLAB - 转置运算符

MATLAB - 转置运算符

上一页

下一页

矩阵的转置是矩阵上非常常用的运算。

什么是矩阵的转置?

矩阵的转置是通过将行与列互换,列与行互换得到的。

假设你有一个大小为 3x3(即 3 行 3 列)的矩阵 A。矩阵 A 的转置用字母 T 作为矩阵 A 的下标表示。

例如,矩阵 A 的转置将是 AT 或 A'。

让我们尝试一个例子

A = 1 2 3

4 5 6

7 8 9

矩阵 A 的转置将是

AT =

1 4 7

2 5 8

3 6 9

OR

A’ =

1 4 7

2 5 8

3 6 9

如果你对转置矩阵再次进行转置,你将得到原始矩阵。

让我们从主矩阵 A 开始。

A =

1 2 3

4 5 6

7 8 9

矩阵 A 的转置将是

AT =

1 4 7

2 5 8

3 6 9

让我们再次进行转置,你应该得到的结果等于我们开始使用的原始矩阵。

(AT)T =

1 2 3

4 5 6

7 8 9

所以方程 (AT)T = A 或 (A')' = A。

MATLAB 中的转置方法

在 MATLAB 中,你可以使用运算符 .'(即 A .')或 '(即 A')来查找矩阵的转置,或者使用 transpose() 方法。

语法

T = A .'

T = A'

T = transpose(A)

transpose() 方法或使用 .' 或 ' 将返回矩阵的转置。

示例 1

在这里,我将使用运算符 .' 来查找矩阵的转置。

A = [1 2 3; 4 5 6; 7 8 9]

T = A .'

在 MATLAB 中执行后,你将得到以下输出

>> A = [1 2 3; 4 5 6; 7 8 9]

>> T = A.'

A =

1 2 3

4 5 6

7 8 9

T =

1 4 7

2 5 8

3 6 9

>>

示例 2

使用运算符 '

A = [1 2 3; 4 5 6; 7 8 9]

T = A '

在 MATLAB 中执行后,你将得到以下输出。

>> A = [1 2 3; 4 5 6; 7 8 9]

T = A'

A =

1 2 3

4 5 6

7 8 9

T =

1 4 7

2 5 8

3 6 9

>>

示例 3

现在让我们使用 transpose() 方法。

A = [1 2 3; 4 5 6; 7 8 9]

T = transpose(A)

执行后的输出为:

>> A = [1 2 3; 4 5 6; 7 8 9]

T = transpose(A)

A =

1 2 3

4 5 6

7 8 9

T =

1 4 7

2 5 8

3 6 9

>>

矩阵的转置的转置

现在让我们尝试对矩阵的转置进行转置,以确保我们能得到原始矩阵。

示例 1

使用运算符 (.')

A = [1 2 3; 4 5 6; 7 8 9]

T = (A .').'

当在 MATLAB 中执行上述代码时,输出如下:

>> A = [1 2 3; 4 5 6; 7 8 9]

T = (A .').'

A =

1 2 3

4 5 6

7 8 9

T =

1 2 3

4 5 6

7 8 9

>>

示例 2

使用如下所示的 transpose() 方法。

A = [1 2 3; 4 5 6; 7 8 9]

T = transpose(A)

Y = transpose(T)

在 MATLAB 中执行后的输出为:

>> A = [1 2 3; 4 5 6; 7 8 9]

T = transpose(A)

Y = transpose(T)

A =

1 2 3

4 5 6

7 8 9

T =

1 4 7

2 5 8

3 6 9

Y =

1 2 3

4 5 6

7 8 9

>>

对复数矩阵进行转置

让我们首先构造一个如下所示的复数矩阵。

A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]

B = A.'

在 MATLAB 中执行后的输出为:

>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]

B = A.'

A =

5 + 0i 3 + 0i 4 - 1i 3 + 2i

0 + 4i 1 - 2i 5 + 0i 5 - 1i

B =

5 + 0i 0 + 4i

3 + 0i 1 - 2i

4 - 1i 5 + 0i

3 + 2i 5 - 1i

>>

再次对矩阵 B 进行转置将返回原始矩阵,如下所示。

>> B = B.'

B =

5.0000 + 0.0000i 3.0000 + 0.0000i 4.0000 - 1.0000i 3.0000 + 2.0000i

0.0000 + 4.0000i 1.0000 - 2.0000i 5.0000 + 0.0000i 5.0000 - 1.0000i

>>

转置运算符 (.') 和 (') 之间的区别?

运算符 .' 执行非共轭转置。

运算符 ' 执行共轭转置。

上述运算符对复数矩阵的影响更大。由于运算符 .' 用于非共轭转置;它将确保它不会影响复数虚部的符号。而当使用运算符 (') 时,复数虚部的符号将受到影响。

让我们检查一下包含复数的矩阵以及使用 (.') 和 (') 进行转置的输出。

让我们考虑以下矩阵来测试这两个运算符。

A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]

共轭转置 (')

矩阵的共轭转置,也称为厄米特转置或伴随矩阵,是一种数学运算,它包括对矩阵进行转置,然后将每个元素替换为其复共轭。

复数 a + bi 的复共轭是通过改变虚部的符号形成的,结果为 a - bi。但是,对于实数,复共轭保持不变。

>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]

B = A'

A =

5.0000 + 0.0000i 3.0000 + 0.0000i 4.0000 - 1.0000i 3.0000 + 2.0000i

0.0000 + 4.0000i 1.0000 - 2.0000i 5.0000 + 0.0000i 5.0000 - 1.0000i

B =

5.0000 + 0.0000i 0.0000 - 4.0000i

3.0000 + 0.0000i 1.0000 + 2.0000i

4.0000 + 1.0000i 5.0000 + 0.0000i

3.0000 - 2.0000i 5.0000 + 1.0000i

>>

非共轭转置 (.')

你很少会遇到“非共轭转置”这个术语,它指的是不考虑矩阵元素的复共轭的转置运算。

>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]

B = A.'

A =

5.0000 + 0.0000i 3.0000 + 0.0000i 4.0000 - 1.0000i 3.0000 + 2.0000i

0.0000 + 4.0000i 1.0000 - 2.0000i 5.0000 + 0.0000i 5.0000 - 1.0000i

B =

5.0000 + 0.0000i 0.0000 + 4.0000i

3.0000 + 0.0000i 1.0000 - 2.0000i

4.0000 - 1.0000i 5.0000 + 0.0000i

3.0000 + 2.0000i 5.0000 - 1.0000i

>>

另一个可用于处理复共轭转置的方法是 ctranspose()。

语法

B = A'

B = ctranspose(A)

此方法很少使用,因为你可以直接使用 A'。ctranspose() 是另一种提供矩阵转置的替代方法。

让我们看看一些使用 ctranspose() 的示例。

示例 1

考虑以下矩阵。

A = [1 2 3; 4 5 6; 7 8 9]

B = ctranspose(A)

执行后的输出为:

>> A = [1 2 3; 4 5 6; 7 8 9]

B = ctranspose(A)

A =

1 2 3

4 5 6

7 8 9

B =

1 4 7

2 5 8

3 6 9

>>

示例 2

在这个例子中,我们将使用如下所示的复数矩阵。

A = [0-2i 4+1i;4+3i 0-2i]

B = ctranspose(A)

在 MATLAB 中执行后的输出为:

>> A = [0-2i 4+1i;4+3i 0-2i]

B = ctranspose(A)

A =

0 - 2i 4 + 1i

4 + 3i 0 - 2i

B =

0 + 2i 4 - 3i

4 - 1i 0 + 2i

>>

打印页面

上一页 下一页

广告

相关推荐