Plot surface from non-anonymus function
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Santiago Ortiz Laverde
le 27 Fév 2021
Commenté : Star Strider
le 27 Fév 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 commentaires
Réponse acceptée
Star Strider
le 27 Fév 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 commentaires
Plus de réponses (1)
Hernia Baby
le 27 Fév 2021
Modifié(e) : Hernia Baby
le 27 Fév 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 commentaires
Voir également
Catégories
En savoir plus sur Graphics Object Programming dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!