2015-05-28 75 views
0

我試着去繪製用Matlab具有3D功能,我的腳本包含以下內容:錯誤繪製3D功能

function f=Untitled(s1 ,s2 , s3) 
    s =[s1 s2 s3]; 
    f= 0.0663 + 0.2099245 *(s(1)^2+s(2)^2+s(3)^2); 
endfunction 

xdata = linspace(36,36,36); 
ydata = linspace(36,36,36); 
zdata = linspace(36,36,36); 
contour(xdata , ydata , zdata , [1 36 72 110]) 

我得到了以下錯誤:

Error in ====> Untitled at 2
s=[s1 s2 s3]

我最新在Matlab,任何人都可以幫我解決這個問題嗎?

+0

您還需要提及實際的錯誤。另外添加函數調用語句 –

回答

0

有在你的代碼中的許多問題:

  • s = [s1 s2 s3];

    這樣可以將s1s2s3水平可變s

    要做到這一點,「數每個變種中的行數應該是相同的「。這是你錯誤的原因。

    你需要檢查你傳遞給 功能untitled

  • endfunction變量的尺寸是Octave語法。你只需要使用endMatlab

  • 然後你使用s(1)s(2)s(3)分開你的 函數中。

    那麼你爲什麼要貓?你也可以使用相應的 變量本身是這樣的:

    f= 0.0663 + 0.2099245 *(s1^2+s2^2+s3^2); 
    
  • 然後你使用linspace(我不知道你實際上是打算與linspace做)的複製值。雖然這 不構成任何問題,對於 一個單獨的內置函數調用 repmat

    你可以使用這樣的:repmat(36,[1,36])

注:同樣命名功能改爲任何其他名稱的良好做法

+0

s1,s2和s3,只是簡單的變量我不明白你的意思是:「每個變量中的行數應該是相同的」。 @Santhan Salai –

+0

@SaraSara簡單的標量?這很奇怪。爲什麼你將它們連接起來呢..你沒有在代碼中使用它們。還要將函數調用語句添加到您的問題中 –