移调时不平衡或意外的括号或括号

时间:2015-07-30 02:45:47

标签: matlab transpose parentheses brackets

使用MATLAB R2014a时出现此错误。

A = [1 2 3; 4 5 6];
A'(:) = [2 2 2 3 3 3];

但是当我将它分成两个步骤时,它才有效:

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

有谁知道原因?

1 个答案:

答案 0 :(得分:3)

在Matlab中,你不能A'(:),因为索引必须首先出现。相反,请A(:)'(或使用reshape来提供更好的控制:reshape(A,1,[])(我认为!))。

您可以执行一些奇怪的操作,例如:A{2}(:)A.matrix(1),因为它们只是编制索引,但您不能执行以下操作:sum(A)(:)或{{1} }。

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