Effacer les filtres
Effacer les filtres

Why Undefined operator '==' for input arguments of type 'function_handle'

2 vues (au cours des 30 derniers jours)
Eric Daiber
Eric Daiber le 23 Sep 2016
Commenté : Star Strider le 23 Sep 2016
Why do I receive the following error every time I run? "Why Undefined operator '==' for input arguments of type 'function_handle'"
Y = @(m,y) sin(theta)*m - cos(theta)*m - Q/(2*pi)*atan((m/y))
x=[];
for y = -100:0.1:100
x=[x; fzero(@(m,y) Y,25)];
end
Thanks, Eric

Réponse acceptée

Star Strider
Star Strider le 23 Sep 2016
The fzero function solves for functions of one variable. You have two, so you would have to use fsolve or another optimisation function, and you have to address them as a vector of parameters for any of the optimisation functions to work.
I have no idea what you want to do, but this is one approach that will probably work:
Q = ...;
theta = ...;
m = ...;
Y = @(m,y) sin(theta)*m - cos(theta)*m - Q./(2*pi)*atan((m./y));
x=[];
for y = -100:0.1:100
yi = fzero(@(y) Y(m,y),25)
x=[x; yi];
end
  2 commentaires
Eric Daiber
Eric Daiber le 23 Sep 2016
So I put this into Matlab and the error showing up now is: Operands to the and && operators must be convertible to logical scalar values.
Error in fzero (line 306) elseif ~isfinite(fx) ~isreal(fx)
Error in Trial3 (line 12) yi = fzero(@(y) A(m,y),25)
What is wrong? I am new to this.
Star Strider
Star Strider le 23 Sep 2016
In the code you posted, you did not state what ‘Q’, ‘theta’, and ‘m’ are, so I suspect the problem is with one of them and the result of the calculations with them in your ‘Y’ function.
Please describe a bit about what you’re doing. That would help me discover where the problems may be.
Also, to clarify:
Q./(2*pi)*atan((m./y)) is the same as atan(m./y)*Q./(2*pi)
Is that what you intend?

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by