>The problem is in 'escalexy.m', in line 86 > ticOffset=(iTic-nShortTics)*signOfDelta*deltaLabel/5; > >values for the relevant call: > ticOffset = 3.0000e+04 > iTic = 5 > nShortTics = 3.9250 > signOfDelta = 1 > deltaLabel = 2000000 > >However: > debug> ticOffset - 30000 > ans = 6.9122e-11 > > >This non-zero values triggers a 'wrong' value for 'firstTicValue'. > >Writing the statement as > signOfDelta*deltaLabel/5 * iTic - ... > signOfDelta*deltaLabel/5 * nShortTics >fixes it for me. However, I'm not sure whether this kind of 'fix' is >good: it makes the code more difficult to understand and might just >trigger problems in other cases (for example, if both numbers are >small).
I think that the problem is elsewhere, precisely here: 122: if vVisible & (offset>=0 | abs(currentValue)>1e-14) 123: if abs(currentValue)<1e-14 124: currentValue=0; 125: end and should be corrected like this: --- escalexy.m~ 2006-03-20 08:48:32.000000000 +0100 +++ escalexy.m 2006-05-03 11:18:25.000000000 +0200 @@ -53,10 +53,12 @@ function longTicPos=escalexy(epsFile,sid %autoscale signOfDelta=sign(startEndDiff); deltaLabel=eticdis(signOfDelta*startEndDiff,maxValues); + LabelEps=deltaLabel*1e-2; else %fixscale signOfDelta=sign(step); deltaLabel=signOfDelta*step; + LabelEps=deltaLabel*sqrt(eps); end if is_scalar (vForm) if vForm==0 @@ -119,8 +121,8 @@ function longTicPos=escalexy(epsFile,sid nPos=nPos+1; fprintf(epsFile,ticLineForm,longTicLength); % value - if vVisible & (offset>=0 | abs(currentValue)>1e-14) - if abs(currentValue)<1e-14 + if vVisible & (offset>=0 | abs(currentValue)>LabelEps) + if abs(currentValue)<LabelEps currentValue=0; end fprintf(epsFile,moveValueForm); -- Francesco Potortì (ricercatore) Voice: +39 050 315 3058 (op.2111) ISTI - Area della ricerca CNR Fax: +39 050 313 8091 via G. Moruzzi 1, I-56124 Pisa Email: [EMAIL PROTECTED] Web: http://fly.isti.cnr.it/ Key: fly.isti.cnr.it/public.key -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]