2012-02-13 77 views
1

我試圖繪製在MATLAB以下等式:繪製SQRT的`一個三維曲線圖(1 + 1 /(KR)^ 2)`

ratio = sqrt(1+1/(kr)^2)

隨着K和R x和y軸和z軸上的比例。我使用meshgrid創建一個矩陣,其值爲x和y,變化範圍爲1到10:

[x,y] = meshgrid([1:1:10],[1:1:10]); 

現在的問題是爲z創建值。我一直在努力,只需鍵入整個方程式,但給出了這樣的結果:

>> Z = sqrt(1+1/(x .* y)^2)??? 
Error using ==> mldivide 
Matrix dimensions must agree. 

所以我所做的就是通過人工的全過程,產生最終右圖去:

z = z^2; 
z = 1 ./ z; 
z = 1 + z; 
z = sqrt(z); 
mesh(x,y,z) 

有沒有更好的方法來做到這一點?或者輸入方程並讓MATLAB處理剩下的問題?

回答

3

試試這個:

Z = sqrt(1+1./(x .* y).^2); 
surf(Z); 

,你已經是關係到使用/,而不是./^2代替.^2

+0

這是它的問題!謝謝!我沒有想到所有的操作組件都是明智的... – jodles 2012-02-13 19:23:57

+1

@jodles youre welcome。請考慮接受答案,如果它幫助你。 – 2012-02-13 19:25:18

+0

我會接受,這只是Stackexchange不會讓我接受,直到11分鐘左右通過...... – jodles 2012-02-13 19:27:33