diff --git a/scripts/image/image.m b/scripts/image/image.m --- a/scripts/image/image.m +++ b/scripts/image/image.m @@ -125,7 +125,7 @@ elseif (numel (unique (x)) > 1) xlim = xdata; elseif (x(1) != 0) - xlim = [0, x]; + xlim = [0, x(1)]; else xlim = [0, 1]; endif @@ -136,7 +136,7 @@ elseif (numel (unique (y)) > 1) ylim = ydata; elseif (y(1) != 0) - ylim = [0, y]; + ylim = [0, y(1)]; else ylim = [0, 1]; endif diff --git a/src/graphics.h.in b/src/graphics.h.in --- a/src/graphics.h.in +++ b/src/graphics.h.in @@ -3437,7 +3437,17 @@ { octave_idx_type iw = (get_cdata ().dims ())(1) - 1; Matrix limits = xdata.get_limits (); - float dp = (limits(1) - limits(0))/(2*iw); + float dp; + + if (iw > 0) + dp = (limits(1) - limits(0))/(2*iw); + else + { + if (limits(1) == limits(2)) + dp = 0.5; + else + dp = (limits(1) - limits(0))/2; + } limits(0) = limits(0) - dp; limits(1) = limits(1) + dp; @@ -3448,8 +3458,18 @@ { octave_idx_type ih = (get_cdata().dims ())(0) - 1; Matrix limits = ydata.get_limits (); - float dp = (limits(1) - limits(0))/(2*ih); - + float dp; + + if (ih > 0) + dp = (limits(1) - limits(0))/(2*ih); + else + { + if (limits(1) == limits(2)) + dp = 0.5; + else + dp = (limits(1) - limits(0))/2; + } + limits(0) = limits(0) - dp; limits(1) = limits(1) + dp; set_ylim (limits);