Anonymous function returning either NaN or a real number depending if the input is a scalar or an element of a vector

1 visualización (últimos 30 días)
I have the following problem: I have created a function f(a,b,c), where b and c are scalars and a is a vector, a = [1 2 3 4 5]. Function f returns 4 real values and for the last element of the vector it returns NaN. What is strange, when I supply the Input 'by hand' ie. f(5,b,c) it returns a real value but when I write f(a(5),b,c) it is NaN. It doesn't matter how long vector a is but if I change the value of the last element it can help. Has anyone encounered a similar problem?
  4 comentarios
Steven Lord
Steven Lord el 12 de Oct. de 2016
You should also post the result of the computation a(5)-5. My guess is that you're computing a and while the last element looks like it is exactly 5 that it is not, and is slightly larger leading to Inf or NaN values creeping into the calculation. When you pass in the exact value 5 you're right on the edge; when you pass in something just bigger than 5 you fall over.
Adam Pigon
Adam Pigon el 15 de Oct. de 2016
Dear All, I would like to thank you for your comments. Obviously, you were right - the last element of my vector a is actually not what it seems to be in the short format. Vector a was created as something like a = sqrt(x)^2 and a is not necessarily equal to x. Thank you for this hint!

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by