Main Content


Convert data from specific ruler to numeric data



num = ruler2num(data,ruler) converts the values in data to numeric values. The ruler input indicates the ruler associated with data, which determines how to map the values to the corresponding numeric values. The output num is the same size as the input data.


collapse all

Convert a date value to the equivalent numeric value in order to set the Position property of a text object.

Create a plot with dates along the x-axis. Add a text description to the fourth data point and return the text object.

t = datetime(2015,1,1:10);
y = [.2 .3 .5 .2 .8 .2 .3 .1 .3 .4];
txt = text(t(4),y(4),'My text');

Change the position of the text to the sixth data point by setting the Position property of the text object. Since the Position property accepts only numeric values, convert the datetime value at the sixth data point to the equivalent numeric value.

ax = gca;
x6 = ruler2num(t(6),ax.XAxis);
txt.Position = [x6 y(6)];

Input Arguments

collapse all

Input array, specified as a scalar, vector, or matrix. If data is already numeric, then the output num is equal to the input data.

Ruler associated with the input data, specified as one of these types of ruler objects:

  • DurationRuler object — Convert the duration values in data to numeric values.

  • DatetimeRuler object — Convert the datetime values in data to numeric values. To control how datetime values are converted to double values, set the ReferenceDate property of the ruler to a datetime value with the desired time zone.

  • NumericRuler object — No conversion in most cases. However, if the input data is not numeric, then the output is num = full(double(data)).

  • CategoricalRuler object — Convert the categorical values in data to numeric values. To control the order of the categories, set the Categories property of the ruler.

  • GeographicRuler object — No conversion. The output is equal to the input.

Specify the ruler object as the XAxis, YAxis, or ZAxis property of the Axes object. For example:

ax = gca;
num = ruler2num(data,ax.XAxis)

Version History

Introduced in R2016b