Index in position 1 is invalid. Array indices must be positive integers or logical values.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I'm trying to make a surface plot but i get the error message where F is a function of x and y but I dont understand what the error message I get means so any help appreciated. Code below error occurs at line 3
function [] = mySurfacePlotter( F,x,y,option)
[X,Y] = meshgrid(x,y);
Z = F(X,Y);
if option == 'surf'
surf(X,Y,Z)
title('Surface');
xlabel('x');
ylabel('y');
else if option == 'contour'
contour(X,Y,Z)
title('Contour');
xlabel('x');
ylabel('y');
end
end
end
1 comentario
Walter Roberson
el 8 de Oct. de 2019
Whatever you are passing in to the first parameter is not a function handle.
Respuestas (1)
Nishant Gupta
el 11 de Oct. de 2019
Like Walter said, the first parameter 'F' need to be a function handle, for eg.
F=@(x,y)(sin(x)+cos(y))
One more thing is, if you select the 'option' as 'contour', it will again give an error. The possible reason for that is the size of the array which you are using to compare is 4 because if you make the slight change as following
else if option == 'cont'
then it will work or you can simply use 'strcmp' function.
1 comentario
Walter Roberson
el 11 de Oct. de 2019
Or r2017a or later,
option == "surf"
option == "contour"
Ver también
Categorías
Más información sobre Surface and Mesh Plots en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!