matlab returns 'Error using <='

1 visualizzazione (ultimi 30 giorni)
Bharat
Bharat il 26 Giu 2015
Commentato: Walter Roberson il 26 Giu 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

Risposte (1)

Walter Roberson
Walter Roberson il 26 Giu 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 Commenti
Bharat
Bharat il 26 Giu 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 il 26 Giu 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)

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by