Why does MATLAB 6.1 (R12.1) crash when I use the Property Editor to set the axes upper limits of a log plot to smaller than the lower limit?

2 views (last 30 days)
When I use SEMILOGX, SEMILOGY, or LOGLOG and then change the axes limits using the Property Editor, I receive a crash if I set the upper limit below the lower limit of a log-axis.All subsequent plots are then corrupt, i.e., no axes object appears in the figure.
In MATLAB 6.0, I receive the same behavior, but without the crash dump.
On UNIX, I do not receive a crash.However, MATLAB hangs, and I am unable to perform subsequent manipulations to my figure.
The following steps will reproduce the problem:
1. Execute the following command:
semilogy(1)
2. On the figure's menubar, choose "Edit-->Axes Properties...".
3. Un-check the "Auto" check box for the Y Limits, and change the upper limit to zero.
4. Press Apply.
The following is printed to the MATLAB command line:
Warning: Requested axes limit range too small; rendering with minimum range allowed by machine precision.
> In D:\Applications\MATLABR12p1\toolbox\matlab\uitools\jpropeditutils.m (jget) at line 150
In D:\Applications\MATLABR12p1\toolbox\matlab\uitools\jpropeditutils.m at line 124
[snip]
----------
Segmentation violation detected at Mon Nov 12 09:38:45 2001
----------
Configuration:
MATLAB Version: 6.1.0.450 (R12.1)
Operating System: Microsoft Windows 2000
Window System:Version 5.0 (Build 2195: Service Pack 1)
Processor ID: x86 Family 6 Model 8 Stepping 6, GenuineIntel
Virtual Machine:Java 1.1.8 from Sun Microsystems Inc.
Register State:
EAX = 00000000EBX = 00000001
ECX = 3ff00000EDX = 00000000
ESI = 02d7e190EDI = 00000000
EBP = 01495cf0ESP = 01495cc0
[snip]
Stack Trace:
[0] hg.dll:_CalculateTickMarkPos(2, 0, 0xffffffff, 0) + 1417 bytes
[1] hg.dll:_compute_axis_ticks(0x1c998d58, 0x1c998d64, 0xfc040f24, 0x1c9989c8) + 420 bytes
[snip]

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This is a bug in MATLAB that has been reported to our development staff to be addressed in a future release of MATLAB.
As a workaround, we suggest changing the axes limits in such a way that the upper limit always exceeds the lower limit. For example, if the current limits are [0 100] and you would like to change them to [200 1000], then you should change the upper limit before changing the lower limit.

More Answers (0)

Categories

Find more on Graphics Performance in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!