[英]MATLAB 3D plot using a defined function
我在一個單獨的文件中定義了一個函數,該函數需要七個參數並輸出一個值。 我想創建一個3D圖,該圖將隨着兩個參數的變化而變化,我真的對如何做到這一點感到困惑。
所以說我的函數是用Ruth(a,b,c,d,e,f)調用的,我希望cf是固定的,並根據a和b的值繪制輸出值。 有人可以指導我嗎? 將不勝感激。
提前致謝!
使用meshgrid
生成您感興趣的a和b范圍內的點的網格。然后在每個(a,b)點對中評估函數,形成2D矩陣。 然后使用mesh
或surf
對a,b自變量繪制矩陣。 這是一個具有非常簡單功能的示例:
function out = myfunc(a,b,c)
out = c + a.*b;
[a,b] = meshgrid(-50:50, -50:50);
c = 10;
z = myfunc(a, b, c);
mesh(a, b, z);
請注意,就我而言,我已將函數編寫為“向量化”,這意味着它將接受向量或輸入數組並在整個數組上進行操作。 如果不是,則必須使用在a和b上的嵌套循環來評估函數,如下所示:
z = zeros(size(a));
for ii=1:size(a,1)
for jj=1:size(a,2)
z(ii,jj) = Ruth(a(ii,jj), b(ii,jj), c, d, e, f);
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.