【发布时间】:2012-09-26 11:37:51
【问题描述】:
我在学习Matlab,看到一行看不懂:
A=[x; y']
这是什么意思? ' 通常表示转接,但我不知道是什么;表示在向量中。你能帮帮我吗?
【问题讨论】:
标签: matlab
我在学习Matlab,看到一行看不懂:
A=[x; y']
这是什么意思? ' 通常表示转接,但我不知道是什么;表示在向量中。你能帮帮我吗?
【问题讨论】:
标签: matlab
[ ] 表示创建矩阵。
这 ;表示第一个向量在第一行,第二个向量在第二行。
' 表示转座子。
示例:
>> x = [1,2,3,4]
x =
1 2 3 4
>> y = [5;6;7;8]
y =
5
6
7
8
>> y'
ans =
5 6 7 8
>> A = [x;y']
A =
1 2 3 4
5 6 7 8
【讨论】:
[x y] 表示向量的水平猫,而[x;y] 表示垂直。
例如(卧猫):
x = [1
2
3];
y = [4
5
6];
[x y] = [1 4
2 5
3 6];
(垂直猫):
x = [1 2 3];
y = [4 5 6];
[x; y] =
[1 2 3;
4 5 6];
【讨论】:
需要明确的是,在 MATLAB 中 ' 是 复共轭 转置。如果你想要非共轭转置,你应该使用.'。
【讨论】:
' 工作得很好。
从其他矩阵创建矩阵时,表示行的结束。
例如
X = [1 2];
Y = [3,4]';
A = [X; Y']
给出一个矩阵
A = [ 1 2 ]
[ 3 4 ]
这称为垂直连接,基本上意味着从其他矩阵(如上面的示例)以逐行方式形成矩阵。是的,您对' 表示转置运算符是正确的。作为另一个示例,您可以使用它来创建转置向量,如下所示
Y = [1 2 3 4 5];
X = [1; 2; 3; 4; 5];
Y = Y';
比较上面的内容,您会发现 X 现在等于 Y。希望这会有所帮助。
【讨论】:
让设置 x m*n 的大小(m 行和 n 列)和 y n*p 的大小。 那么A就是x的垂直串联和y(算子')的转置形成的矩阵,它的大小是(m+p)*n。水平连接是用逗号而不是半列完成的。 这个符号是函数 vertcat 的一个很好的简写。 更多信息请见http://www.mathworks.fr/help/techdoc/math/f1-84864.html
【讨论】:
分号 ' ; ' 用于开始新行。
例如x=[1 2 3; 4 5 6; 7 8 9] 表示
x= 1 2 3 4 5 6 7 8 9所以如果你取 x=[1 2 3; 4 5 6] 和 y=[7 8 9]'
那么 z=[x; y'] 表示
z= 1 2 3 4 5 6 7 8 9【讨论】: