hypothetical matlab's limit

3 visualizzazioni (ultimi 30 giorni)
Bio_Ing_Sapienza
Bio_Ing_Sapienza il 9 Feb 2019
Commentato: John D'Errico il 9 Feb 2019
Hi everyone. I have to calculate a sumof a vector of doubles of 1x4884 components. When I use this function i get as ans=nan. I there a limit to the maximum number that matlab is able to calculate? If yes how can i change this cobstraint?
Thank you in advance
  1 Commento
madhan ravi
madhan ravi il 9 Feb 2019
Without knowing what your data is , it's hard to answer.

Accedi per commentare.

Risposte (1)

Adam Danz
Adam Danz il 9 Feb 2019
Modificato: Adam Danz il 9 Feb 2019
I'm sure there is such a limit in Matlab but it's nowhere near a vector length of 4884.
The problem is that you have at least 1 NaN value in your data.
sum([1, NaN])
ans =
NaN
Use the 'omitnan' flag to ignore NaN values.
sum([1,NaN], 'omitnan')
ans =
1
To confirm that you have at least one NaN value in your data, if this next line returns True (1), you have NaN value(s).
any(isnan(yourData)) % to find where the NaNs are: find(isnan(yourData))
And here's a test to confirm that Matlab can handle vector lengths of 4884 (or even 4884000 for that matter).
sum(rand(1, 4884))
  7 Commenti
Adam Danz
Adam Danz il 9 Feb 2019
This Matlab summary covers most of your examples and also mentions rem(x,y) when x is inf or y is 0.
John D'Errico
John D'Errico il 9 Feb 2019
Yes. rem also makes sense.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by