2012-09-30 42 views
0

多個號碼我需要找到每個x RP,但我有一個困難時期,因爲MATLAB給了我這個錯誤我不能在MATLAB

Error in enee_408e_hw2_pb1 (line 6) 
rp=(z2*cos(t2)-z1*cos(x))/(z2*cos(t2)+z1*cos(x)) 

這裏是我的代碼

x=0:.01:pi/2; 
n2=1.7; 
t2=asin(sin(x)/n2); 
z1=377*cos(x); 
z2=377\cos(x); 
rp=(z2*cos(t2)-z1*cos(x))/(z2*cos(t2)+z1*cos(x)); 

我想計算從0到pi/2的每個角度的rp,然後繪製它。我究竟做錯了什麼?

回答

2

每個操作在z1和z2中的同一單元格上執行。 Matlab/Ocatave基於變量的類型計算參數。所以如果你把*放在向量之間,它會嘗試計算交叉乘積。可能問題是\,我不知道Matlab試圖用它做什麼。在操作符更改之前將.添加到更自然的(對於非數學人員)並將相應的單元格相乘。 但我仍然不知道它這是你預料

rp=(z2.*cos(t2)-z1.*cos(x))./(z2.*cos(t2)+z1.*cos(x)); 
+0

超棒的工作!非常感謝您的幫助。如果沒有那麼多麻煩,你能告訴我添加'。'是什麼嗎? –

+1

[Here](http://en.wikibooks.org/wiki/Octave_Programming_Tutorial/Vectors_and_matrices#Element_operations)你可以找到簡短的解釋 – janisz

1

首先,你爲什麼要在這一行使用\?

z2=377\cos(x); 

MATLAB和\和/有區別。

現在該瞭解MATLAB中./和。*與/和*之間的區別了。

當您需要按元素進行操作時,請使用帶點的操作符。

+0

我想劃分我想我應該''。/'而不是\? –

+0

是的。使用./做一個元素劃分 – 2012-09-30 20:34:39