# Why it is saying this? Index in position 2 is invalid. Array indices must be positive integers or logical values. Error in Homework (line 21) surf(x,y,F(i,j))

4 views (last 30 days)
Akash Talapatra on 3 Feb 2022
Commented: Alan Stevens on 4 Feb 2022
x=[-5:5]
y=[-5:5]
for i=1:(x-1);
for j=1:(y-1);
if (x(i)>=0)&(y(j)>=0)
F(i,j)=2.*x(i)+y(j)^2
end
if (x(i)>=0)&(y(j)<0)
F(i,j)=x(i)+y(j)
end
if (x(i)<0)& (y(j)>=0)
F(i,j)=x(i)^2+2*y(j)
end
if (x(i)<0)&(y(j)<0)
F(i,j)=x(i)^2+y(j)^2
else
end
end
end
figure
surf(x,y,F(i,j))

Alan Stevens on 3 Feb 2022
Like this
x=[-5:5];
y=[-5:5];
for i=1:numel(x)
for j=1:numel(y)
if (x(i)>=0)&&(y(j)>=0)
F(i,j)=2.*x(i)+y(j)^2;
end
if (x(i)>=0)&&(y(j)<0)
F(i,j)=x(i)+y(j);
end
if (x(i)<0)&& (y(j)>=0)
F(i,j)=x(i)^2+2*y(j);
end
if (x(i)<0)&&(y(j)<0)
F(i,j)=x(i)^2+y(j)^2;
else
end
end
end
figure
surf(x,y,F) ##### 2 CommentsShowHide 1 older comment
Alan Stevens on 4 Feb 2022
numel(x) means the number of elements in x. Your statements like
for i=1:(x-1);
don't make sense.