2016-09-14 85 views
0

我試圖糾正下面的代碼,但沒有成功內矩陣尺寸.. Matlab的說:錯誤在MATLAB

Error using * 
Inner matrix dimensions must agree. 

Error in 
Atten = a*l*f; 

下面是代碼

a=[0.6 1.89 4.1 0.9 0.8 3]; 
l=[0.5 0.5 0.5 0.5 0.5 0.5]; 
f=[1000000:4000000:21000000]; 
Atten = a*l*f; 
plot(f,Atten) 

我即使l=[0.4];嘗試但它沒有工作 如何更正代碼?

謝謝

回答

1

這裏是一個比編程錯誤更多的數學問題。

你想要乘以3 [1x6]矩陣,當然這是不可能的。

或許希望此操作

[1x6]*[6x1]*[1x6] = [1x6] 

,而不是

[1x6]*[1x6]*[1x6] = Impossible 

在這種情況下,你可以使用該運營商.'移調你的矩陣:

Atten = a*l.'*f; 

result: 
5.6450e+06 2.8225e+07 5.0805e+07 7.3385e+07 9.5965e+07 1.1855e+08 

在這種情況下l.'將是一個[6x1]矩陣和現在的操作是可能的

更多關於這家運營商的信息:Tranpose vectore or matrix

0

。在你的矩陣尺寸不匹配。 確保將矩陣乘以正確的尺寸。

您可以使用.'運算符轉置矩陣。

0

如果你想乘以元素明智的,你可以使用.*