2010-05-04 96 views
0

这是一个从这个question为什么有效的声明会在MATLAB中给出错误?

为什么这两个解决方案不起作用,虽然看起来很有效,我:

>> t = -pi:0.1:pi; 
>> r = ((sin(t)*sqrt(cos(t)))*(sin(t) + (7/5))^(-1)) - 2*sin(t) + 2 ; 
??? Error using ==> mtimes 
Inner matrix dimensions must agree. 

>> t = -pi:0.1:pi; 
>> r = ((sin(t).*sqrt(cos(t))).*(sin(t) + (7/5)).^(-1)) - 2*sin(t) + 2 ; 
>> plot(r,t) 
??? Error using ==> plot 
Vectors must be the same lengths. 

这有什么错以上?

回答

4

*运算符是矩阵乘法运算符,它要求其操作数具有匹配的内部矩阵维度。 .*运算符是单元乘法运算符,它要求其操作数具有相同的大小(或者一个是标量),因此它可以在每对匹配的元素上执行乘法运算。有关更多详细信息,请参阅this link

另外,当我运行第二个解决方案时,我没有看到绘图错误。我只是得到这个警告:

Warning: Imaginary parts of complex X and/or Y arguments ignored 
+0

顺便说一句,你是什么意思的“内矩阵维度”? – user198729 2010-05-04 19:09:11

+1

对于“A * B”操作,内部矩阵维数是“A”的列和“B”的行,它们必须等于执行矩阵乘法。 – gnovice 2010-05-04 19:11:29

+0

由于没有明确提及它,“虚部”来自哪里? – user198729 2010-05-04 19:12:16

相关问题