Matlab 换位时不平衡或意外的括号或括号

Matlab 换位时不平衡或意外的括号或括号,matlab,transpose,parentheses,brackets,Matlab,Transpose,Parentheses,Brackets,当我使用MatlabR2014A时,我得到了这个错误 A = [1 2 3; 4 5 6]; A'(:) = [2 2 2 3 3 3]; 但当我将其分为两个步骤时,它会起作用: B = A'; B(:) = [2 2 2 3 3 3]; 有人知道原因吗 在Matlab中,您不能执行A'(:),因为索引必须首先出现。相反,要做A(:)'(或者使用重塑来提供更好的控制:重塑(A,1,[])(我想!)) 你可以做一些奇怪的事情,比如:A{2}(:)或A.matrix(1),因为它们只是索引,但你

当我使用MatlabR2014A时,我得到了这个错误

A = [1 2 3; 4 5 6];
A'(:) = [2 2 2 3 3 3];
但当我将其分为两个步骤时,它会起作用:

B = A';
B(:) = [2 2 2 3 3 3];

有人知道原因吗

在Matlab中,您不能执行
A'(:)
,因为索引必须首先出现。相反,要做
A(:)'
(或者使用
重塑
来提供更好的控制:
重塑(A,1,[])
(我想!))

你可以做一些奇怪的事情,比如:
A{2}(:)
A.matrix(1)
,因为它们只是索引,但你不能做这样的事情:
sum(A)(:)
A^2(:)


还有一个技术说明,您应该执行
a(:).
,因为
'
执行共轭转置,而
'
执行常规矩阵转置。当然,在大多数情况下,它们是相同的,但最好做正确的事情,你永远不会被(非常)奇怪的错误绊倒

A'(:)
是无效的Matlab语法。试试
A(:)。
。(对于矩阵转置而不是共轭转置,使用
'
而不是
'
)。除变量名外,不能在任何内容后面使用括号索引。@David请将其作为answer@David但是
A(:)。
A.(:)
的功能不同。您可以使用
A=重塑([23]、大小(A,2)、大小(A,1))
您可以将函数
transpose
称为
的等价物
,这是一个很好的观点,并使@Matt的所有内容都更加清晰。