Why I cannot get negative answer ?

clear all; close all; clc;
x = input('x= ');
y = input('y= ');
if (x>=5) & (y>2)
f(x,y)=x^2-y;
elseif (x<5) | (y>0 & y<=2)
f(x,y) = x-y^2;
else (x<0 & x>0) & (y<0)
f(x,y)= x^3 + y^3;
end
f(x,y)
%when I try input x =0 and y=2 it does not run
%Index in position 1 is invalid. Array indices must be positive integers or logical values.
%How to I solve that?
%Thank you very much

1 个评论

clear all; close all; clc;
x = 0 ;
y = 2 ;
if (x>=5) & (y>2)
f = @(x,y) x^2-y; % define function using function handle
f(x,y)
elseif (x<5) | (y>0 & y<=2)
f= @(x,y) x-y^2;
f(x,y)
else (x<0 & x>0) & (y<0)
f = @(x,y) x^3 + y^3;
f(x,y)
end
ans = -4
Define the function using its function handle as the way you try to call function

请先登录,再进行评论。

 采纳的回答

x=0; y=2;
if (x>=5) & (y>2)
f=x^2-y;
elseif (x<5) | (y>0 & y<=2)
f = x-y^2;
else (x<0 & x>0) & (y<0)
f= x^3 + y^3;
end
f
f = -4

2 个评论

why we use f due to f(x,y) sir ?
Because, "array indices must be positive integers or logical values"
For example:
A=rand(1,4)
A = 1×4
0.8551 0.1501 0.7576 0.0665
We can do
A(1)
ans = 0.8551
A(2)
ans = 0.1501
but not,
A(0)
Array indices must be positive integers or logical values.
There is no location in the vector known as A(0).

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Matrix Indexing 的更多信息

产品

版本

R2022a

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by