matlab returns 'Error using <='

1 visualización (últimos 30 días)
Bharat
Bharat el 26 de Jun. de 2015
Comentada: Walter Roberson el 26 de Jun. de 2015
Hello guys, I need help with a script. I have a function which contains the following commands:
l = Y(abs(X-Sal)<0.0000001)
p = Y(Y <= l & X>=(Sal-0.00001))
When I run, I get the following error: Error using <= Matrix dimensions must agree. However, the same script when run in the command window gives the right result. What am I doing wrong?
Thanks

Respuestas (1)

Walter Roberson
Walter Roberson el 26 de Jun. de 2015
At the command window command
dbstop if error
and run the function. When it stops because of the error, look at size(Y) and size(l) . I suspect you will find that l is either empty or else has multiple elements.
What promises can you make that there will always be exactly 1 location where abs(X-Sal)<0.0000001 ?
  2 comentarios
Bharat
Bharat el 26 de Jun. de 2015
Hi Walter, Yes the l is a zero by one matrix. But I don't understand why is that happening? Regarding the 1 location thing, Sal was defined as Sal = X(3); However as abs(X=Sal) doesn't work (a problem with the number of significant digits) , I defined l as such. (I also know that the values of X do differ by atleast 0.01 which makes l exactly one value).
Walter Roberson
Walter Roberson el 26 de Jun. de 2015
You should command
format long g
and then look at the value of Sal and at the values stored in X. You should also examine the values of (X-Sal) to see what the magnitude of the difference is. If your values are above about 10^8 then the difference between consecutive double precision numbers would be more than 0.0000001; look at eps(Sal) to see the distance between adjacent numbers in that range (and realize that it is common for calculations to differ by 10*eps)

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing 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