<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: invalid matrix token in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2117#M2117</link>
    <description>David, I got it to work. The key was to use the parsing thing. I had to create the script to send to the report after the graph had been created. It seems like I should be able to do it within the graph creation itself but this works for me.  Thanks for your help, that little coding went a long way.&lt;BR /&gt;&lt;BR /&gt;&lt;!--&lt;br /&gt;ClearGlobals();&lt;br /&gt;&lt;br /&gt;//open DC input table and get columns&lt;br /&gt;dt0 = CurrentDataTable();&lt;br /&gt;dt1 = Open();&lt;br /&gt;yName = Column(dt1, 1) &lt;&lt; get as matrix;&lt;br /&gt;yUnit = Column(dt1, 2) &lt;&lt; get as matrix;&lt;br /&gt;yT = Column(dt1, 3) &lt;&lt; get as matrix;&lt;br /&gt;yLL = Column(dt1, 4) &lt;&lt; get as matrix;&lt;br /&gt;yUL = Column(dt1, 5) &lt;&lt; get as matrix;&lt;br /&gt;xName = Column(dt1, 6) &lt;&lt; get as matrix;&lt;br /&gt;xUnit = Column(dt1, 7) &lt;&lt; get as matrix;&lt;br /&gt;xT = Column(dt1, 8) &lt;&lt; get as matrix;&lt;br /&gt;xLL = Column(dt1, 9) &lt;&lt; get as matrix;&lt;br /&gt;xUL = Column(dt1, 10) &lt;&lt; get as matrix;&lt;br /&gt;Close(dt1, no save);&lt;br /&gt;&lt;br /&gt;//now plot according to which columns are present&lt;br /&gt;CurrentDataTable(dt0);&lt;br /&gt;ColList = dt0 &lt;&lt; get column names();&lt;br /&gt;&lt;br /&gt;//color by split if you like&lt;br /&gt;dlg=ColumnDialog(ColId = ColList("select column for color bx splits", Max Col(1)));&lt;br /&gt;if (dlg["Button"]==-1,&lt;br /&gt;	dt0&lt;&lt;ClearRowStates(), //else&lt;br /&gt;	splitColumn = Char(dlg["ColId"][1]);&lt;br /&gt;	dt0 &lt;&lt; Color By Column(Column(splitColumn));&lt;br /&gt;	dt0 &lt;&lt; Marker By Column(Column(splitColumn));&lt;br /&gt;	);&lt;br /&gt;ColList=char(ColList);&lt;br /&gt;&lt;br /&gt;//loop through plot list&lt;br /&gt;For(j = 1, j &lt;= NItems(xName), j++,           &lt;br /&gt;//create correct column name&lt;br /&gt;	yPlot = yName&lt;j&gt; || " [" || yUnit&lt;j&gt; || "]";&lt;br /&gt;	xPlot = xName&lt;j&gt; || " [" || xUnit&lt;j&gt; || "]";&lt;br /&gt;//check to see if columns exist&lt;br /&gt;	If(Contains(ColList, yPlot) != 0 &amp; Column(yPlot) &lt;&lt; get modeling type == "Continuous"&lt;br /&gt;		&amp; Contains(ColList, XPlot) != 0 &amp; Column(xPlot) &lt;&lt; get modeling type == "Continuous",         &lt;br /&gt;//determine axis max and min&lt;br /&gt;		If(ColMaximum(Column(yPlot)) &gt; yUL&lt;j&gt; + 0.5 * (yUL&lt;j&gt; - yT&lt;j&gt;) / 3,&lt;br /&gt;			ymax = ColMaximum(Column(yPlot)),         //else&lt;br /&gt;			ymax = yUL&lt;j&gt; + 0.5 * (yUL&lt;j&gt; - yT&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMinimum(Column(yPlot)) &lt; yLL&lt;j&gt; - 0.5 * (yT&lt;j&gt; - yLL&lt;j&gt;) / 3,&lt;br /&gt;			ymin = ColMinimum(Column(yPlot)),         //else&lt;br /&gt;			ymin = yLL&lt;j&gt; - 0.5 * (yT&lt;j&gt; - yLL&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMaximum(Column(xPlot)) &gt; xUL&lt;j&gt; + 0.5 * (xUL&lt;j&gt; - xT&lt;j&gt;) / 3,&lt;br /&gt;			xmax = ColMaximum(Column(xPlot)),         //else&lt;br /&gt;			xmax = xUL&lt;j&gt; + 0.5 * (xUL&lt;j&gt; - xT&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMinimum(Column(xPlot)) &lt; xLL&lt;j&gt; - 0.5 * (xT&lt;j&gt; - xLL&lt;j&gt;) / 3,&lt;br /&gt;			xmin = ColMinimum(Column(xPlot)),         //else&lt;br /&gt;			xmin = xLL&lt;j&gt; - 0.5 * (xT&lt;j&gt; - xLL&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;//plot&lt;br /&gt;		db=Bivariate(&lt;br /&gt;				Y(Column(yPlot)),&lt;br /&gt;				X(Column(xPlot)),&lt;br /&gt;				//invisible,&lt;br /&gt;				SendToReport(&lt;br /&gt;					Dispatch({}, "1", ScaleBox, {Max(xmax), Min(xmin)}), //,&lt;br /&gt;							//AddRefLine(xLL&lt;j&gt;,Dotted, Blue),AddRefLine(xUL&lt;j&gt;,Dotted, Blue),&lt;br /&gt;							//AddRefLine(xT&lt;j&gt;,Solid, Black)}),&lt;br /&gt;					Dispatch({}, "2", ScaleBox, {Max(ymax), Min(ymin)}), //,&lt;br /&gt;							//AddRefLine(yLL&lt;j&gt;,Dotted, Blue),AddRefLine(yUL&lt;j&gt;,Dotted, Blue),&lt;br /&gt;							//AddRefLine(yT&lt;j&gt;,Solid, Black)}),&lt;br /&gt;				);&lt;br /&gt;			);&lt;br /&gt;		);&lt;br /&gt;//create script for plot&lt;br /&gt;	TextToParse="db&lt;&lt;report&lt;&lt;Dispatch({},\!"Bivar Plot\!",FrameBox,&lt;br /&gt;					Add Graphics Script(2,&lt;br /&gt;						Description(\!"Targets and Limits\!"),&lt;br /&gt;						PenColor(\!"black\!");&lt;br /&gt;						PenSize(2);&lt;br /&gt;						Line({" || char(xT&lt;j&gt;) || "," || char(yLL&lt;j&gt;) || "},{" || &lt;br /&gt;							char(xT&lt;j&gt;) || "," || char(yUL&lt;j&gt;) || "});&lt;br /&gt;						Line({" || char(xLL&lt;j&gt;) || "," || char(yT&lt;j&gt;) || "},{" || &lt;br /&gt;							char(xUL&lt;j&gt;) || "," || char(yT&lt;j&gt;) || "});&lt;br /&gt;						Transparency(0.15);&lt;br /&gt;						FillColor(66);&lt;br /&gt;						Polygon([" || char(xLL&lt;j&gt;) || "," || char(xLL&lt;j&gt;) || &lt;br /&gt;								"," || char(xUL&lt;j&gt;) || "," || char(xUL&lt;j&gt;) || &lt;br /&gt;								"],[" || char(yLL&lt;j&gt;) || "," || char(yUL&lt;j&gt;) || &lt;br /&gt;								"," || char(yUL&lt;j&gt;) || "," || char(yLL&lt;j&gt;) || "])&lt;br /&gt;						));";	&lt;br /&gt;	//show(TextToParse);&lt;br /&gt;	eval(parse(TextToParse));&lt;br /&gt;	db&lt;&lt;journal;&lt;br /&gt;	db&lt;&lt;close window;&lt;br /&gt;	);&lt;br /&gt;--&gt;</description>
    <pubDate>Mon, 19 Jul 2010 07:28:42 GMT</pubDate>
    <dc:creator>h_lazar</dc:creator>
    <dc:date>2010-07-19T07:28:42Z</dc:date>
    <item>
      <title>invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2111#M2111</link>
      <description>Can someone tell me what the error "invalid matrix token" means? I am using the following script in a for loop (j as iterator) in order to graph and add a box for limits. However, the script is giving me the matrix error. Can someone give me a hint?&lt;BR /&gt;&lt;BR /&gt;dgb=Bivariate(&lt;BR /&gt;				Y(Column(yPlot)),&lt;BR /&gt;				X(Column(xPlot)),&lt;BR /&gt;				SendToReport(&lt;BR /&gt;					Dispatch({}, "1", ScaleBox, {Max(xmax), Min(xmin)}),&lt;BR /&gt;					Dispatch({}, "2", ScaleBox, {Max(ymax), Min(ymin)}),&lt;BR /&gt;					Dispatch({},"Bivar Plot",FrameBox,&lt;BR /&gt;						Add Graphics Script(&lt;BR /&gt;							2,&lt;BR /&gt;							Description("Script"),&lt;BR /&gt;							Transparency(0.5);&lt;BR /&gt;							FillColor({0.38, 0.84, 0.67});&lt;BR /&gt;							Polygon([xLL&lt;J&gt;,xLL&lt;J&gt;,xUL&lt;J&gt;,xUL&lt;J&gt;], [yLL&lt;J&gt;,yLL&lt;J&gt;,yUL&lt;J&gt;,yUL&lt;J&gt;]);&lt;BR /&gt;						)&lt;BR /&gt;					)&lt;BR /&gt;				)&lt;BR /&gt;			);&lt;BR /&gt;&lt;BR /&gt;xLL&lt;J&gt;,xLL&lt;J&gt;,xUL&lt;J&gt;,xUL&lt;J&gt;,yLL&lt;J&gt;,yLL&lt;J&gt;,yUL&lt;J&gt;,and yUL&lt;J&gt; are matrices of numbers. It also seems that this will not put the numbers in the script to the graph. Does anyone know how to do this?&lt;BR /&gt;&lt;BR /&gt;Message was edited by: h.lazar&lt;BR /&gt;&lt;BR /&gt;Message was edited by: h.lazar&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;</description>
      <pubDate>Tue, 13 Jul 2010 07:57:39 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2111#M2111</guid>
      <dc:creator>h_lazar</dc:creator>
      <dc:date>2010-07-13T07:57:39Z</dc:date>
    </item>
    <item>
      <title>Re: invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2112#M2112</link>
      <description>So I figured out I had to use substitute but this still does not place the numbers in the script for the plot. Anyone have any ideas?&lt;BR /&gt;&lt;BR /&gt;db=Bivariate(&lt;BR /&gt;				Y(Column(yPlot)),&lt;BR /&gt;				X(Column(xPlot)),&lt;BR /&gt;				//invisible,&lt;BR /&gt;				SendToReport(&lt;BR /&gt;					Dispatch({}, "1", ScaleBox, {Max(xmax), Min(xmin)}),&lt;BR /&gt;					Dispatch({}, "2", ScaleBox, {Max(ymax), Min(ymin)}),&lt;BR /&gt;					Dispatch({},"Bivar Plot",FrameBox,&lt;BR /&gt;						Add Graphics Script(2,&lt;BR /&gt;							Description("Targets and Limits"),&lt;BR /&gt;							PenColor("black");&lt;BR /&gt;							PenSize(2);&lt;BR /&gt;							Eval(Substitute(Expr(Line({xt1,y11},{xt1,y22})),&lt;BR /&gt;								expr(xt1),xT&lt;J&gt;,expr(y11),yLL&lt;J&gt;,expr(y22),yUL&lt;J&gt;));&lt;BR /&gt;							Eval(Substitute(Expr(Line({x11,yt1},{x22,yt1})),&lt;BR /&gt;								expr(x11),xLL&lt;J&gt;,expr(yt1),yT&lt;J&gt;,expr(x22),xUL&lt;J&gt;));&lt;BR /&gt;							Transparency(0.15);&lt;BR /&gt;							FillColor(66);&lt;BR /&gt;							Eval(Substitute(Expr(Polygon(&lt;BR /&gt;								matrix({x11, x11, x22, x22}),matrix({y11, y22, y22, y11}))),&lt;BR /&gt;								expr(x11),xLL&lt;J&gt;,&lt;BR /&gt;								expr(x22),xUL&lt;J&gt;&lt;BR /&gt;								expr(y11),yLL&lt;J&gt;,&lt;BR /&gt;								expr(y22),yUL&lt;J&gt;))&lt;BR /&gt;						);&lt;BR /&gt;					);&lt;BR /&gt;				);&lt;BR /&gt;			);&lt;BR /&gt;		);&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;</description>
      <pubDate>Tue, 13 Jul 2010 12:19:41 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2112#M2112</guid>
      <dc:creator>h_lazar</dc:creator>
      <dc:date>2010-07-13T12:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2113#M2113</link>
      <description>does anyone have an answer to this?  how do you script and "add graphics script" to a platform graph and insert values for variables?&lt;BR /&gt;&lt;BR /&gt;thanks&lt;BR /&gt;Heather</description>
      <pubDate>Fri, 16 Jul 2010 08:30:01 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2113#M2113</guid>
      <dc:creator>h_lazar</dc:creator>
      <dc:date>2010-07-16T08:30:01Z</dc:date>
    </item>
    <item>
      <title>Re: invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2114#M2114</link>
      <description>I've tried loading this script to try it out for myself, but there are a couple of errors in it (there's a comma missing at the end of the "expr(x22)" line plus one mismatched bracket at the end).  Correcting these as I'm assuming they should be corrected gives the program below, which I've tried running on one of the supplied data sets as shown: it crashes because it doesn't know what "xT" is.  I can see another reason it might not work, namely that xmax, xmin, ymax and ymin aren't defined in this data set, but since I don't have your data I don't know what values these should take:&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 16 Jul 2010 14:51:33 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2114#M2114</guid>
      <dc:creator />
      <dc:date>2010-07-16T14:51:33Z</dc:date>
    </item>
    <item>
      <title>Re: invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2115#M2115</link>
      <description>Another thought: the problem looks as if it involves inserting numbers into the script as opposed to variable names.  In such cases I usually create a block of text which contains the script I know I want to run, and then parse it.&lt;BR /&gt;&lt;BR /&gt;For example, suppose I wanted to add a property called "Cutoff" to the "Height" column of Big Class, and I wanted the value of Cutoff to be whatever number is held in a variable called CutoffValue, which is currently 60.  My first guess might be to do it like this:&lt;BR /&gt;&lt;BR /&gt;CutoffValue = 60;&lt;BR /&gt;dt = open("$SAMPLE_DATA/Big Class.jmp");&lt;BR /&gt;column(dt, "Height") &amp;lt;&amp;lt; set property(Cutoff, CutoffValue);&lt;BR /&gt;&lt;BR /&gt;That doesn't work however: if you inspect the properties of the "Height" column, all you see is "CutoffValue".  One way out is to use eval, as you've done several times in your script:&lt;BR /&gt;&lt;BR /&gt;column(dt, "Height") &amp;lt;&amp;lt; set property(Cutoff, eval(CutoffValue));&lt;BR /&gt;&lt;BR /&gt;Alternatively, try setting up something like this:&lt;BR /&gt;&lt;BR /&gt;TextToParse = "column(dt, \!"Height\!") &amp;lt;&amp;lt; set property(Cutoff, " || char(CutoffValue) || ");";&lt;BR /&gt;show(TextToParse);&lt;BR /&gt;eval(parse(TextToParse));&lt;BR /&gt;&lt;BR /&gt;The advantage of the above is that if it still isn't working, at least you can write the expression to the log to make sure you've got the syntax right.  I sometimes write entire blocks of script like this when they get seriously complicated: perhaps you could do something similar with your script too.</description>
      <pubDate>Sat, 17 Jul 2010 07:41:23 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2115#M2115</guid>
      <dc:creator />
      <dc:date>2010-07-17T07:41:23Z</dc:date>
    </item>
    <item>
      <title>Re: invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2116#M2116</link>
      <description>David&lt;BR /&gt;&lt;BR /&gt;Thanks for responding. This script is part of a much larger script involving importing a list of column names to plot. I will post the script here but you will not be able to test it. If you see better practices, I am all ears.&lt;BR /&gt;&lt;BR /&gt;The issue is, in fact, trying to insert a value from a variable. In this case, I want to use it in "Add Graphics Script" to create a box at the limits of the columns I am plotting. I have done something similar before by using substitute and eval statements into formulas of columns. However, it is not working for this particular case. When I look at the resulting graphics script of the graph, it is printed exactly as the code is stated and the values are not substituted.&lt;BR /&gt;&lt;BR /&gt;I think I finally understand eval but I am not sure I understand the parse function. Are you suggesting that the actual script string be assigned to a variable (using parse)? I can try this but my question is do I evaluate the script variable before I run the "Add Graphics Script" line or during. I am afraid that if I do it during, I will not get the result I want.&lt;BR /&gt;&lt;BR /&gt;here is the script. I hope it is formatted as nicely as yours. The portion in question is currently commented out and I have used adding reference lines temporarily. I would love to get it to work as originally planned.&lt;BR /&gt;&lt;BR /&gt;&lt;!--ClearGlobals();&lt;br /&gt;&lt;br /&gt;//open DC input table and get columns&lt;br /&gt;dt0 = CurrentDataTable();&lt;br /&gt;dt1 = Open();&lt;br /&gt;yName = Column(dt1, 1) &lt;&lt; get as matrix;&lt;br /&gt;yUnit = Column(dt1, 2) &lt;&lt; get as matrix;&lt;br /&gt;yT = Column(dt1, 3) &lt;&lt; get as matrix;&lt;br /&gt;yLL = Column(dt1, 4) &lt;&lt; get as matrix;&lt;br /&gt;yUL = Column(dt1, 5) &lt;&lt; get as matrix;&lt;br /&gt;xName = Column(dt1, 6) &lt;&lt; get as matrix;&lt;br /&gt;xUnit = Column(dt1, 7) &lt;&lt; get as matrix;&lt;br /&gt;xT = Column(dt1, 8) &lt;&lt; get as matrix;&lt;br /&gt;xLL = Column(dt1, 9) &lt;&lt; get as matrix;&lt;br /&gt;xUL = Column(dt1, 10) &lt;&lt; get as matrix;&lt;br /&gt;Close(dt1, no save);&lt;br /&gt;&lt;br /&gt;//now plot according to which columns are present&lt;br /&gt;CurrentDataTable(dt0);&lt;br /&gt;ColList = dt0 &lt;&lt; get column names();&lt;br /&gt;&lt;br /&gt;//color by split if you like&lt;br /&gt;dlg=ColumnDialog(ColId = ColList("select column for color bx splits", Max Col(1)));&lt;br /&gt;if (dlg["Button"]==-1,&lt;br /&gt;	dt0&lt;&lt;ClearRowStates(), //else&lt;br /&gt;	splitColumn = Char(dlg["ColId"][1]);&lt;br /&gt;	dt0 &lt;&lt; Color By Column(Column(splitColumn));&lt;br /&gt;	dt0 &lt;&lt; Marker By Column(Column(splitColumn));&lt;br /&gt;	);&lt;br /&gt;ColList=char(ColList);&lt;br /&gt;&lt;br /&gt;//loop through plot list&lt;br /&gt;For(j = 1, j &lt;= NItems(xName), j++,           &lt;br /&gt;//check if column exists&lt;br /&gt;	yPlot = yName&lt;j&gt; || " [" || yUnit&lt;j&gt; || "]";&lt;br /&gt;	xPlot = xName&lt;j&gt; || " [" || xUnit&lt;j&gt; || "]";&lt;br /&gt;//check to see if columns exist&lt;br /&gt;	If(Contains(ColList, yPlot) != 0 &amp; Column(yPlot) &lt;&lt; get modeling type == "Continuous"&lt;br /&gt;		&amp; Contains(ColList, XPlot) != 0 &amp; Column(xPlot) &lt;&lt; get modeling type == "Continuous",         &lt;br /&gt;//determine axis max and min&lt;br /&gt;		If(ColMaximum(Column(yPlot)) &gt; yUL&lt;j&gt; + 0.5 * (yUL&lt;j&gt; - yT&lt;j&gt;) / 3,&lt;br /&gt;			ymax = ColMaximum(Column(yPlot)),         //else&lt;br /&gt;			ymax = yUL&lt;j&gt; + 0.5 * (yUL&lt;j&gt; - yT&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMinimum(Column(yPlot)) &lt; yLL&lt;j&gt; - 0.5 * (yT&lt;j&gt; - yLL&lt;j&gt;) / 3,&lt;br /&gt;			ymin = ColMinimum(Column(yPlot)),         //else&lt;br /&gt;			ymin = yLL&lt;j&gt; - 0.5 * (yT&lt;j&gt; - yLL&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMaximum(Column(xPlot)) &gt; xUL&lt;j&gt; + 0.5 * (xUL&lt;j&gt; - xT&lt;j&gt;) / 3,&lt;br /&gt;			xmax = ColMaximum(Column(xPlot)),         //else&lt;br /&gt;			xmax = xUL&lt;j&gt; + 0.5 * (xUL&lt;j&gt; - xT&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMinimum(Column(xPlot)) &lt; xLL&lt;j&gt; - 0.5 * (xT&lt;j&gt; - xLL&lt;j&gt;) / 3,&lt;br /&gt;			xmin = ColMinimum(Column(xPlot)),         //else&lt;br /&gt;			xmin = xLL&lt;j&gt; - 0.5 * (xT&lt;j&gt; - xLL&lt;j&gt;) / 3&lt;br /&gt;		);		&lt;br /&gt;		db=Bivariate(&lt;br /&gt;				Y(Column(yPlot)),&lt;br /&gt;				X(Column(xPlot)),&lt;br /&gt;				//invisible,&lt;br /&gt;				SendToReport(&lt;br /&gt;					Dispatch({}, "1", ScaleBox, {Max(xmax), Min(xmin),&lt;br /&gt;							AddRefLine(xLL&lt;j&gt;,Dotted, Blue),AddRefLine(xUL&lt;j&gt;,Dotted, Blue),&lt;br /&gt;							AddRefLine(xT&lt;j&gt;,Solid, Black)}),&lt;br /&gt;					Dispatch({}, "2", ScaleBox, {Max(ymax), Min(ymin),&lt;br /&gt;							AddRefLine(yLL&lt;j&gt;,Dotted, Blue),AddRefLine(yUL&lt;j&gt;,Dotted, Blue),&lt;br /&gt;							AddRefLine(yT&lt;j&gt;,Solid, Black)&lt;br /&gt;					}),&lt;br /&gt;					//Dispatch({},"Bivar Plot",FrameBox,&lt;br /&gt;						//Add Graphics Script(2,&lt;br /&gt;						//	Description("Targets and Limits"),&lt;br /&gt;						//	PenColor("black");&lt;br /&gt;						//	PenSize(2);&lt;br /&gt;						//	Eval(Substitute(Expr(Line({xt1,y11},{xt1,y22})),&lt;br /&gt;						//		expr(xt1),xT&lt;j&gt;,expr(y11),yLL&lt;j&gt;,expr(y22),yUL&lt;j&gt;));&lt;br /&gt;						//	Eval(Substitute(Expr(Line({x11,yt1},{x22,yt1})),&lt;br /&gt;						//		expr(x11),xLL&lt;j&gt;,expr(yt1),yT&lt;j&gt;,expr(x22),xUL&lt;j&gt;));&lt;br /&gt;						//	Transparency(0.15);&lt;br /&gt;						//	FillColor(66);&lt;br /&gt;						//	Eval(Substitute(Expr(Polygon(&lt;br /&gt;						//		matrix({x11, x11, x22, x22}),matrix({y11, y22, y22, y11}))),&lt;br /&gt;						//		expr(x11),xLL&lt;j&gt;,&lt;br /&gt;						//		expr(x22),xUL&lt;j&gt;,&lt;br /&gt;						//		expr(y11),yLL&lt;j&gt;,&lt;br /&gt;						//		expr(y22),yUL&lt;j&gt;))&lt;br /&gt;						//);&lt;br /&gt;					//);&lt;br /&gt;				);&lt;br /&gt;			);&lt;br /&gt;		);&lt;br /&gt;	db&lt;&lt;journal;&lt;br /&gt;	db&lt;&lt;close window;&lt;br /&gt;	);--&gt;</description>
      <pubDate>Mon, 19 Jul 2010 06:39:05 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2116#M2116</guid>
      <dc:creator>h_lazar</dc:creator>
      <dc:date>2010-07-19T06:39:05Z</dc:date>
    </item>
    <item>
      <title>Re: invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2117#M2117</link>
      <description>David, I got it to work. The key was to use the parsing thing. I had to create the script to send to the report after the graph had been created. It seems like I should be able to do it within the graph creation itself but this works for me.  Thanks for your help, that little coding went a long way.&lt;BR /&gt;&lt;BR /&gt;&lt;!--&lt;br /&gt;ClearGlobals();&lt;br /&gt;&lt;br /&gt;//open DC input table and get columns&lt;br /&gt;dt0 = CurrentDataTable();&lt;br /&gt;dt1 = Open();&lt;br /&gt;yName = Column(dt1, 1) &lt;&lt; get as matrix;&lt;br /&gt;yUnit = Column(dt1, 2) &lt;&lt; get as matrix;&lt;br /&gt;yT = Column(dt1, 3) &lt;&lt; get as matrix;&lt;br /&gt;yLL = Column(dt1, 4) &lt;&lt; get as matrix;&lt;br /&gt;yUL = Column(dt1, 5) &lt;&lt; get as matrix;&lt;br /&gt;xName = Column(dt1, 6) &lt;&lt; get as matrix;&lt;br /&gt;xUnit = Column(dt1, 7) &lt;&lt; get as matrix;&lt;br /&gt;xT = Column(dt1, 8) &lt;&lt; get as matrix;&lt;br /&gt;xLL = Column(dt1, 9) &lt;&lt; get as matrix;&lt;br /&gt;xUL = Column(dt1, 10) &lt;&lt; get as matrix;&lt;br /&gt;Close(dt1, no save);&lt;br /&gt;&lt;br /&gt;//now plot according to which columns are present&lt;br /&gt;CurrentDataTable(dt0);&lt;br /&gt;ColList = dt0 &lt;&lt; get column names();&lt;br /&gt;&lt;br /&gt;//color by split if you like&lt;br /&gt;dlg=ColumnDialog(ColId = ColList("select column for color bx splits", Max Col(1)));&lt;br /&gt;if (dlg["Button"]==-1,&lt;br /&gt;	dt0&lt;&lt;ClearRowStates(), //else&lt;br /&gt;	splitColumn = Char(dlg["ColId"][1]);&lt;br /&gt;	dt0 &lt;&lt; Color By Column(Column(splitColumn));&lt;br /&gt;	dt0 &lt;&lt; Marker By Column(Column(splitColumn));&lt;br /&gt;	);&lt;br /&gt;ColList=char(ColList);&lt;br /&gt;&lt;br /&gt;//loop through plot list&lt;br /&gt;For(j = 1, j &lt;= NItems(xName), j++,           &lt;br /&gt;//create correct column name&lt;br /&gt;	yPlot = yName&lt;j&gt; || " [" || yUnit&lt;j&gt; || "]";&lt;br /&gt;	xPlot = xName&lt;j&gt; || " [" || xUnit&lt;j&gt; || "]";&lt;br /&gt;//check to see if columns exist&lt;br /&gt;	If(Contains(ColList, yPlot) != 0 &amp; Column(yPlot) &lt;&lt; get modeling type == "Continuous"&lt;br /&gt;		&amp; Contains(ColList, XPlot) != 0 &amp; Column(xPlot) &lt;&lt; get modeling type == "Continuous",         &lt;br /&gt;//determine axis max and min&lt;br /&gt;		If(ColMaximum(Column(yPlot)) &gt; yUL&lt;j&gt; + 0.5 * (yUL&lt;j&gt; - yT&lt;j&gt;) / 3,&lt;br /&gt;			ymax = ColMaximum(Column(yPlot)),         //else&lt;br /&gt;			ymax = yUL&lt;j&gt; + 0.5 * (yUL&lt;j&gt; - yT&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMinimum(Column(yPlot)) &lt; yLL&lt;j&gt; - 0.5 * (yT&lt;j&gt; - yLL&lt;j&gt;) / 3,&lt;br /&gt;			ymin = ColMinimum(Column(yPlot)),         //else&lt;br /&gt;			ymin = yLL&lt;j&gt; - 0.5 * (yT&lt;j&gt; - yLL&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMaximum(Column(xPlot)) &gt; xUL&lt;j&gt; + 0.5 * (xUL&lt;j&gt; - xT&lt;j&gt;) / 3,&lt;br /&gt;			xmax = ColMaximum(Column(xPlot)),         //else&lt;br /&gt;			xmax = xUL&lt;j&gt; + 0.5 * (xUL&lt;j&gt; - xT&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;		If(ColMinimum(Column(xPlot)) &lt; xLL&lt;j&gt; - 0.5 * (xT&lt;j&gt; - xLL&lt;j&gt;) / 3,&lt;br /&gt;			xmin = ColMinimum(Column(xPlot)),         //else&lt;br /&gt;			xmin = xLL&lt;j&gt; - 0.5 * (xT&lt;j&gt; - xLL&lt;j&gt;) / 3&lt;br /&gt;		);&lt;br /&gt;//plot&lt;br /&gt;		db=Bivariate(&lt;br /&gt;				Y(Column(yPlot)),&lt;br /&gt;				X(Column(xPlot)),&lt;br /&gt;				//invisible,&lt;br /&gt;				SendToReport(&lt;br /&gt;					Dispatch({}, "1", ScaleBox, {Max(xmax), Min(xmin)}), //,&lt;br /&gt;							//AddRefLine(xLL&lt;j&gt;,Dotted, Blue),AddRefLine(xUL&lt;j&gt;,Dotted, Blue),&lt;br /&gt;							//AddRefLine(xT&lt;j&gt;,Solid, Black)}),&lt;br /&gt;					Dispatch({}, "2", ScaleBox, {Max(ymax), Min(ymin)}), //,&lt;br /&gt;							//AddRefLine(yLL&lt;j&gt;,Dotted, Blue),AddRefLine(yUL&lt;j&gt;,Dotted, Blue),&lt;br /&gt;							//AddRefLine(yT&lt;j&gt;,Solid, Black)}),&lt;br /&gt;				);&lt;br /&gt;			);&lt;br /&gt;		);&lt;br /&gt;//create script for plot&lt;br /&gt;	TextToParse="db&lt;&lt;report&lt;&lt;Dispatch({},\!"Bivar Plot\!",FrameBox,&lt;br /&gt;					Add Graphics Script(2,&lt;br /&gt;						Description(\!"Targets and Limits\!"),&lt;br /&gt;						PenColor(\!"black\!");&lt;br /&gt;						PenSize(2);&lt;br /&gt;						Line({" || char(xT&lt;j&gt;) || "," || char(yLL&lt;j&gt;) || "},{" || &lt;br /&gt;							char(xT&lt;j&gt;) || "," || char(yUL&lt;j&gt;) || "});&lt;br /&gt;						Line({" || char(xLL&lt;j&gt;) || "," || char(yT&lt;j&gt;) || "},{" || &lt;br /&gt;							char(xUL&lt;j&gt;) || "," || char(yT&lt;j&gt;) || "});&lt;br /&gt;						Transparency(0.15);&lt;br /&gt;						FillColor(66);&lt;br /&gt;						Polygon([" || char(xLL&lt;j&gt;) || "," || char(xLL&lt;j&gt;) || &lt;br /&gt;								"," || char(xUL&lt;j&gt;) || "," || char(xUL&lt;j&gt;) || &lt;br /&gt;								"],[" || char(yLL&lt;j&gt;) || "," || char(yUL&lt;j&gt;) || &lt;br /&gt;								"," || char(yUL&lt;j&gt;) || "," || char(yLL&lt;j&gt;) || "])&lt;br /&gt;						));";	&lt;br /&gt;	//show(TextToParse);&lt;br /&gt;	eval(parse(TextToParse));&lt;br /&gt;	db&lt;&lt;journal;&lt;br /&gt;	db&lt;&lt;close window;&lt;br /&gt;	);&lt;br /&gt;--&gt;</description>
      <pubDate>Mon, 19 Jul 2010 07:28:42 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2117#M2117</guid>
      <dc:creator>h_lazar</dc:creator>
      <dc:date>2010-07-19T07:28:42Z</dc:date>
    </item>
    <item>
      <title>Re: invalid matrix token</title>
      <link>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2118#M2118</link>
      <description>Hi Heather - that's great: I'm glad you've got it working because I don't think I'd be able to dissect the script itself! :)&lt;/img&gt;&lt;BR /&gt;&lt;BR /&gt;David</description>
      <pubDate>Mon, 19 Jul 2010 07:40:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/invalid-matrix-token/m-p/2118#M2118</guid>
      <dc:creator />
      <dc:date>2010-07-19T07:40:08Z</dc:date>
    </item>
  </channel>
</rss>

