Min Returns Value That is Not in List

1 view (last 30 days)
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 Comments
Guillaume
Guillaume on 25 Sep 2014
Can you give an example of your cell array?
Paul Huter
Paul Huter on 25 Sep 2014
It is a single column with about 226 values.

Sign in to comment.

Accepted Answer

Geoff Hayes
Geoff Hayes on 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 Comments
John D'Errico
John D'Errico on 25 Sep 2014
Edited: John D'Errico on 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 on 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.

Sign in to comment.

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!