Matlab 换位时不平衡或意外的括号或括号
当我使用MatlabR2014A时,我得到了这个错误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),因为它们只是索引,但你
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的所有内容都更加清晰。