Index in position 1 is invalid. Array indices must be positive integers or logical values.
조회 수: 4 (최근 30일)
이전 댓글 표시
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
Walter Roberson
2019년 10월 8일
Whatever you are passing in to the first parameter is not a function handle.
답변 (1개)
Nishant Gupta
2019년 10월 11일
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
Walter Roberson
2019년 10월 11일
Or r2017a or later,
option == "surf"
option == "contour"
참고 항목
카테고리
Help Center 및 File Exchange에서 Contour Plots에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!