I am writing code for a function but I get an error message
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have to write a function (g) that satisfies several conditions.
I have tried to do this before, but never successfully.
This is what I have so far:
function mayday=g(x)
if x<-pi
mayday=-1;
elseif (x>=-pi)&&(x<=pi)
mayday=cos(x);
else mayday=sin(x)+cos(x);
end
When I call the function with individual x's, it works fine, but when define x as a vector
g(-2*pi:pi/4:2*pi)
I get the error message
Operands to the || and && operators must be convertible to logical scalar values.
Error in g (line 7)
elseif (x>=-pi)&&(x<=pi)
What am i doing wrong?
thanks for the help
0 commentaires
Réponse acceptée
Kye Taylor
le 4 Mai 2012
Just replace && with & and double pipes | | with | to operate on nonscalars.
2 commentaires
Walter Roberson
le 4 Mai 2012
That will eliminate the error message, but it will not eliminate the problem of trying to apply an "if" statement to a vector expression.
Kye Taylor
le 4 Mai 2012
An if statement can be applied to a vector expression. It is handled by matlab as
if(vector) = if(all(vector))
which may be the desired behavior.. probably not, but that's a different question.
Plus de réponses (2)
Peyman
le 9 Août 2012
NOT RELATED TO THE QUESTION: how did you right your question so clear! I used this help and it doesn't work for me!
1 commentaire
Walter Roberson
le 9 Août 2012
I am not certain what you mean but try http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup
Voir également
Catégories
En savoir plus sur Tables 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!