Error in function at if-elseif

2 Ansichten (letzte 30 Tage)
Raul Vaida
Raul Vaida am 10 Mär. 2018
Kommentiert: Raul Vaida am 10 Mär. 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 Kommentar
per isakson
per isakson am 10 Mär. 2018
Bearbeitet: per isakson am 10 Mär. 2018

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Ahmet Cecen
Ahmet Cecen am 10 Mär. 2018
Bearbeitet: Ahmet Cecen am 10 Mär. 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 Kommentar
Raul Vaida
Raul Vaida am 10 Mär. 2018
Thank you very much, it worked perfectly this way!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by