Error in function at if-elseif

1 vue (au cours des 30 derniers jours)
Raul Vaida
Raul Vaida le 10 Mar 2018
Commenté : Raul Vaida le 10 Mar 2018
I've got the error Output argument "val" (and maybe others) not assigned during call to "yt". yt(x) funtion:
function [val] = yt(x)
if ((-9<=x) & (x<-3)) | ((3<=x) & (x<=9))
val = sin(5*x);
elseif (-3<=x) & (x<3)
val = cos(x) - cos(3) - sin(15);
end
and i call the function using the following
x = -9:9;
val = yt(x)
I've got no output from this.
  1 commentaire
per isakson
per isakson le 10 Mar 2018
Modifié(e) : per isakson le 10 Mar 2018

Connectez-vous pour commenter.

Réponse acceptée

Ahmet Cecen
Ahmet Cecen le 10 Mar 2018
Modifié(e) : Ahmet Cecen le 10 Mar 2018
x is a vector at this point so your comparisons are not resolving to a single true false. I am guessing this is what you meant to do:
x = -9:9;
val = yt(x)
function [val] = yt(x)
for i = 1:length(x)
if ((-9<=x(i)) && (x(i)<-3)) || ((3<=x(i)) && (x(i)<=9))
val(i) = sin(5*x(i));
elseif (-3<=x(i)) && (x(i)<3)
val(i) = cos(x(i)) - cos(3) - sin(15);
end
end
end
There are better ways to do this of course, but this is probably the easiest to relate.
  1 commentaire
Raul Vaida
Raul Vaida le 10 Mar 2018
Thank you very much, it worked perfectly this way!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by