使用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];
有谁知道原因?
答案 0 :(得分:3)
在Matlab中,你不能A'(:)
,因为索引必须首先出现。相反,请A(:)'
(或使用reshape
来提供更好的控制:reshape(A,1,[])
(我认为!))。
您可以执行一些奇怪的操作,例如:A{2}(:)
或A.matrix(1)
,因为它们只是编制索引,但您不能执行以下操作:sum(A)(:)
或{{1} }。
一个更技术性的说明,你应该做A^2(:)
,因为A(:).'
执行共轭转置,而'
执行常规矩阵转置。当然,在大多数情况下它们是相同的,但是最好做正确的事情,你永远不会因为(非常)奇怪的错误而被绊倒!