When you open a figure it takes the next available figure number and the figure number property is read-only and cannot be reassigned.
The analysis should not rely on a figure number. If specific figures need referenced, figure handles, names or tags should be used to identify the figure. (see name and tag properties in the link above).
h = open('figure.fig')
h = findall(0,'type','figure','tag','myUniqueTag');
h = findall(0,'type','figure','name','myUniqueName');
One way to "change" the number of a figure you open is to start a new figure with the specified number (ie, figure(10)) and then use copyobj() to copy the opened figure to the new one. I don't recommend this because figure 10 may already exist and now it's destroyed. Also, it's extra work that can be avoided by following the advice above instead.
Another sloppy way to make sure your opened figure has number 'x' is to merely create x-1 empty figures. This is really ugly and bad but it's still a way to get there.
desiredFigNum = 10;
fh = gobjects(1,desiredFigNum-1);
for i = 1:desiredFigNum-1
fh(i) = figure('visible','off');