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 commentaire

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

Connectez-vous pour commenter.

 Réponse acceptée

Matt J
Matt J le 2 Jan 2023
Modifié(e) : Matt J le 2 Jan 2023
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 commentaires

Vo
Vo le 2 Jan 2023
why we use f due to f(x,y) sir ?
Matt J
Matt J le 2 Jan 2023
Modifié(e) : Matt J le 2 Jan 2023
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).

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by