Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Bug using Options[]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg16070] Bug using Options[]
  • From: Dan Truong <dtruong at irisa.fr>
  • Date: Tue, 23 Feb 1999 03:45:23 -0500
  • Organization: IRISA, FRANCE
  • Sender: owner-wri-mathgroup at wolfram.com

I am trying to use functions with optional parameters. However, it
seems that sometimes the Options[] are used even when I specify some
other input. This happens in the example below for the cs parameter,
but for example, zticks seems OK.

Note: I cut out much of the code, so definitions are not complete...

Am I doing something stupid somewhere? Could there be a global
definition
somewhere which would bypass my code? If so how could I prevent such
problems?
I do use the variable name cs often for data.

-

Block[
	{i,cs,ls,as,xAxis,yAxis,zAxis,theMisses,title}
	,
	Clear[Stack3D];
	Clear[Stack3DBody];
	Options[Stack3D] := {
		cs-> Evaluate[Table[i,{i,minCS,maxCS}]],
		zTicks-> Table[ {i,StringJoin[ToString[N[100*i]], "%"]}, {i,0,1,0.1}
],
		theMisses -> {1,0,0,1,0,1,1}
		(* ... *)
	};
	
	Stack3D[opts___] := Stack3DBody[
		cs  /. {opts} /. Options[Stack3D],
		zTicks  /. {opts} /. Options[Stack3D],	
		theMisses  /. {opts} /. Options[Stack3D]
		(* ... *)
	];
	Stack3DBody[
		cs_,
		ls_,
		as_,
		title_,
		theArray_,
		xAxis_,
		yAxis_,
		zAxis_,
		xTicks_,
		yTicks_,
		zTicks_,
		theMisses_
	] := (
		theGraphics = Table[Graphics3D[Cuboid[{-1,-1,-1}]],{i,1,lastIdx,1}];
		Print[
			"CS ",cs , " minCS ", minCS, " maxCS ", maxCS,
		];
	);
];

zId = 0.8;
list3D = Stack3D[
	cs->Table[x,{x,15,maxCS,1}],
	zTicks-> Table[ {i,StringJoin[ToString[100*i], "%"]},
{i,0,1*zId,0.1*zId} ],
	zAxis->{"Misses",0,zId},
	theMisses->{1,0,0,1,0,1,1}
]

Output:
CS {3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} minCS 3 maxCS 20
zTicks
{{0,"0%"},{0.08,"8.%"},{0.16,"16.%"},{0.24,"24.%"},{0.32,"32.%"},{0.4,"40.%"},{0.48,"48.%"},{0.56,
      "56.%"},{0.64,"64.%"},{0.72,"72.%"},{0.8,"80.%"}}

The output should be:
CS {15,16,17,18,19,20} minCS 3 maxCS 20

Note that zTick goes from 0 to 80% which is good (in Options[] it'sset
from 0 to 100%).


  • Prev by Date: CompiledFunction for matrices ??
  • Next by Date: RE: Strange results from Integrate
  • Previous by thread: Re: CompiledFunction for matrices ??
  • Next by thread: Re: HELP: Plotting composite functions