Min Returns Value That is Not in List

6 vues (au cours des 30 derniers jours)
Paul Huter
Paul Huter le 25 Sep 2014
Commenté : Paul Huter le 25 Sep 2014
I have a cell array and I am trying to find the min (and max) value. The numbers in the cell array go from 2 to over 200 (but not necessarily all numbers). However, when I try to find the min (using "cellfun" or "cat2mat"), I get 48 as the min and 57 as the max. Neither 48 nor 57 is in my list of values.
Any ideas on what the issue is?
  2 commentaires
Guillaume
Guillaume le 25 Sep 2014
Can you give an example of your cell array?
Paul Huter
Paul Huter le 25 Sep 2014
It is a single column with about 226 values.

Connectez-vous pour commenter.

Réponse acceptée

Geoff Hayes
Geoff Hayes le 25 Sep 2014
Paul - are you somehow converting your numbers to strings? Try the executing the following statements in the Command Window
min('104')
ans =
48
and
max('191')
ans =
57
The ASCII code for zero is 48, and the ASCII code for 9 is 57. What is the line of code you are using with cellfun?
  2 commentaires
John D'Errico
John D'Errico le 25 Sep 2014
Modifié(e) : John D'Errico le 25 Sep 2014
+1. I would bet a decent sum of money that you got it right. The clue being the statement that the cell array contains "not necessarily all numbers". So it must be a cell array containing strings. Just because something LOOKS like a number does not mean it is stored as such, or that it would be interpreted as a number by MATLAB.
Paul Huter
Paul Huter le 25 Sep 2014
That was the path I was heading down after I posted this. I got things working with min(cellfun(@str2num, ARRAY)).
Thank you.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Operators and Elementary Operations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by