Plot surface from non-anonymus function
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Santiago Ortiz Laverde
il 27 Feb 2021
Commentato: Star Strider
il 27 Feb 2021
Hello guys,
I'd like to plot a surface from a global function. I don't know how to create the function, so it is applied to every value in a multidimensional array (mesh grid). There plenty of examples using anonymous functions, but I haven't found any from a non-anonymous one (which I call "global").
Take this function as an example
function z = test(w)
x = w(1);
y = w(2);
z = 2*x.^2 + 2*y.^2 +10*(1.1*y.^2 +3*x.^2).^0.5;
end
Is it possible?
Regards,
Santiago
0 Commenti
Risposta accettata
Star Strider
il 27 Feb 2021
See if this does what you want —
function z = test(w)
x = w{1};
y = w{2};
z = 2*x.^2 + 2*y.^2 +10*(1.1*y.^2 +3*x.^2).^0.5;
end
x = -10:10;
y = -15:5;
[W{1},W{2}] = ndgrid(x,y);
Z = test(W);
figure
surf(W{1},W{2},Z)
grid on
Note that I created ‘w’ as cell arrays to pass its elements as matrices. Other than that change, your function is as you wrote it.
2 Commenti
Più risposte (1)
Hernia Baby
il 27 Feb 2021
Modificato: Hernia Baby
il 27 Feb 2021
clc,clear,close all;
w = [1:10;2:11];
x = w(1,:);
y = w(2,:);
f = @(x,y) 2*x.^2 + 2*y.^2 +10*(1.1*y.^2 +3*x.^2).^0.5;
[X,Y] = meshgrid(x,y);
z = f(X,Y);
figure
surf(X,Y,z)
grid on
0 Commenti
Vedere anche
Categorie
Scopri di più su Graphics Object Programming in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!