Matlab won't plot a range of very small numbers.

I am having trouble plotting some values in MATLAB (R2014a on a Mac). I really don't know what the problem is. Consider the following sequence of plots:
plot((1:3),[1e-150*0.2 0 0]);
plot((1:3),[1e-151*0.2 0 0]);
plot((1:3),[1e-152*0.2 0 0]);
plot((1:3),[1e-153*0.2 0 0]);
plot((1:3),[1e-154*0.2 0 0]);
For some reason MATLAB won't plot the ones with 1e-151/153. Anyone has an idea of why this can be?
Thanks!

Answers (2)

Use the hold function.
Try this:
figure(1)
plot((1:3),[1e-150*0.2 0 0]);
hold on
plot((1:3),[1e-151*0.2 0 0]);
plot((1:3),[1e-152*0.2 0 0]);
plot((1:3),[1e-153*0.2 0 0]);
plot((1:3),[1e-154*0.2 0 0]);
hold off

3 Comments

Hi, it is not about plotting them in the same figure. The sequence was just to show that MATLAB will plot the first and the last ones, but not the ones in between (one at a time). Thanks though.
The plot function plots to the open figure window, erasing any previous plots to it unless you use the hold function. When I ran my code (with hold in R2014b) it plotted all of them.
Similarly, this plots them all:
figure(1)
plot((1:3),[1e-150*0.2 0 0]);
figure(2)
plot((1:3),[1e-151*0.2 0 0]);
figure(3)
plot((1:3),[1e-152*0.2 0 0]);
figure(4)
plot((1:3),[1e-153*0.2 0 0]);
figure(5)
plot((1:3),[1e-154*0.2 0 0]);
Going back a few versions on my machine:
Windows 32-bit
R2009a: Plots all of them
R2013a: Plots all of them
R2014a: Plots all of them
Windows 64-bit
R2010a: Does not plot all of them
R2013a: Does not plot all of them
R2013b: Does not plot all of them
R2014a: Does not plot all of them
R2014b: Plots all of them

Sign in to comment.

It might depend on the renderer. As far as I remember OpenGL draws with a single precision only, such that the Painters or ZBuffer renderer might work. Or the other way around?

1 Comment

I see. But why would it work with 1e-150 and 1e-154 and not with 1e-152? The non-monotonicty is what puzzles me. Thanks.

Sign in to comment.

Categories

Find more on Graphics Performance in Help Center and File Exchange

Asked:

on 16 Mar 2015

Commented:

on 16 Mar 2015

Community Treasure Hunt

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

Start Hunting!