<?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: Select 2 rows from failing die in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724984#M90874</link>
    <description>&lt;P&gt;I think Option 2 would make more sense. I would appreciate if you could share the modified matrix logic for big patch.&amp;nbsp;&lt;SPAN&gt;I'm not exactly sure how to use fix this&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 22 Feb 2024 02:01:32 GMT</pubDate>
    <dc:creator>Jackie_</dc:creator>
    <dc:date>2024-02-22T02:01:32Z</dc:date>
    <item>
      <title>Select 2 rows</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/656597#M84564</link>
      <description>&lt;P&gt;Hi JMP Community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to highlight two data points from each X and Y coordinates of the failure bin "2". I tried to write a jsl code, but the results are not correct.&amp;nbsp;&lt;BR /&gt;The below code highlights more than two data points from X and Y coordinates of the failure bin "2". Any suggestions?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here( 1 );
dtt = Data Table( "failures" );
dt = Data Table( "Summary Bins" );
//Clear values
dt:Highlight[1 :: N Rows( dt )] = "";
//define list for storing +/-2 X and Y coord in the list
xList = [];
yList = [];

//get X and Y coord of the failing dies
fail_xcoord = dtt:X coord &amp;lt;&amp;lt; get values;
fail_ycoord = dtt:Y coord &amp;lt;&amp;lt; get values;

// Add and subtract 2 from X and Y using a loop
For( j = 1, j &amp;lt;= N Rows( dtt ), j++,
	For( i = -2, i &amp;lt;= 2, i++,
		newX = dtt:X coord[j] + i;
		newY = dtt:Y coord[j] + i;

		If( newX != dtt:X coord[j],
			Insert Into( xList, newX )
		); 
    

		If( newY != dtt:Y coord[j],
			Insert Into( yList, newY )
		);

    
	)
);

//Loop to highlight 2 dies
dt &amp;lt;&amp;lt; Begin Data Update;
For( i = 1, i &amp;lt;= N Rows( dt ), i++,
	If( Contains( xlist, dt:X coord[i] ) &amp;amp; Contains( fail_ycoord, dt:Y coord[i] ),
		dt:Highlight[i] = "1";
		
		
	);
	If( Contains( ylist, dt:Y coord[i] ) &amp;amp; Contains( fail_xcoord, dt:X coord[i] ),
		dt:Highlight[i] = "1";
		
		
	);
		
);
dt &amp;lt;&amp;lt; End Data Update;

dt &amp;lt;&amp;lt; select where( :Highlight == "1" &amp;amp; :Bins == "1" );&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&amp;nbsp;&lt;BR /&gt;Jackie&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jul 2023 18:55:13 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/656597#M84564</guid>
      <dc:creator>Jackie_</dc:creator>
      <dc:date>2023-07-10T18:55:13Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/656711#M84570</link>
      <description>&lt;P&gt;Maybe something like this&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;dtt = Open( "/Z:/failures.jmp" );// 109 inner rows

expand = 2;// how far to look for a failure
// these are paired, keep them in a Nx2 matrix...
fail = (dtt:X coord &amp;lt;&amp;lt; get values) || (dtt:Y coord &amp;lt;&amp;lt; get values);
// get min and max of the matrix columns
failmin = V Min( fail );
failmax = V Max( fail );
// find the +/- 2 area of interest
colmin = failmin[1] - expand;
colmax = failmax[1] + expand;
rowmin = failmin[2] - expand;
rowmax = failmax[2] + expand;
// turn the failure list back into a rectangular matrix, mark the actual failures
unmarked = 0; // points that have not been marked yet
interior = 1; // the failures are interior points
border = 2; // the border points are near the failures
bigpatch = J( rowmax + 1, colmax + 1, unmarked );
For Each( {{r, c}}, across( fail[0, 2], fail[0, 1] ), bigpatch[r, c] = interior );
// helper to check near r,c
nearFailure = Function( {r0, c0}, //parameters
	{rlow, rhigh, clow, chigh, r, c}, // locals
	// low..high is expanded without going beyond the edge of bigpatch
	rlow = Max( 1, r0 - expand );
	rhigh = Min( N Rows( bigpatch ), r0 + expand );
	clow = Max( 1, c0 - expand );
	chigh = Min( N Cols( bigpatch ), c0 + expand );
	// rlow..chigh is a slightly expanded search area
	For( r = rlow, r &amp;lt;= rhigh, r += 1,
		For( c = clow, c &amp;lt;= chigh, c += 1, 
			// any interior point (1) nearby?
			If(
				bigpatch[r, c] == interior// uncomment for "rounder"				
//				&amp;amp; Sqrt( (r - r0) ^ 2 + (c - c0) ^ 2 ) &amp;lt;= expand// the diagonal distance of the corners is expand*1.414...nearly 3...
			,
				Return( 1 ) // found an interior point nearby
			)
		)
	);
	/*return*/	0; // no interior point found nearby
);

For( r = rowmin, r &amp;lt;= rowmax, r += 1,
	For( c = colmin, c &amp;lt;= colmax, c += 1,
		If( bigpatch[r, c] == unmarked &amp;amp; nearFailure( r, c ),
			bigpatch[r, c] = border// add a border to the bigpatch
		)
	)
);
// view a cellplot
dtcp = As Table( bigpatch[rowmin - 1 :: rowmax + 1, colmin - 1 :: colmax + 1] );
dtcp[1 :: N Rows( dtcp ), 0] = dtcp[N Rows( dtcp ) :: 1, 0];// flip to make the same as graph builder
dtcp &amp;lt;&amp;lt; Cell Plot( Scale Uniformly( 0 ), Center at zero( 0 ), Y( dtcp &amp;lt;&amp;lt; getcolumnnames ) );


dt = Open( "/Z:/Summary Bins.jmp" );// all rows
//Clear values
dt:Highlight[1 :: N Rows( dt )] = "";
//Loop to highlight 2 dies
dt &amp;lt;&amp;lt; Begin Data Update;
For( i = 1, i &amp;lt;= N Rows( dt ), i++,
	c = dt:X coord[i];
	r = dt:Y coord[i];
	If( r &amp;lt; N Rows( bigpatch ) &amp;amp; c &amp;lt; N Cols( bigpatch ) &amp;amp; bigpatch[r, c] == border,
		dt:Highlight[i] = "1"
	);
);
dt &amp;lt;&amp;lt; End Data Update;

dt &amp;lt;&amp;lt; select where( :Highlight == "1" &amp;amp; :Bins == "1" );

dt &amp;lt;&amp;lt; Graph Builder( Size( 528, 454 ), Show Control Panel( 0 ), Variables( X( :X coord ), Y( :Y coord ) ), Elements( Points( X, Y, Legend( 7 ) ) ) );
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You might want this&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="capture4.png" style="width: 864px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/54517i55A493A674A428EF/image-size/large?v=v2&amp;amp;px=999" role="button" title="capture4.png" alt="capture4.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;or this, see the commented line for the distance calculation. Depends how you want to treat the diagonal distance.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="capture2.png" style="width: 842px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/54518i94F7733C719929E5/image-size/large?v=v2&amp;amp;px=999" role="button" title="capture2.png" alt="capture2.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Jul 2023 12:32:40 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/656711#M84570</guid>
      <dc:creator>Craige_Hales</dc:creator>
      <dc:date>2023-07-08T12:32:40Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/656716#M84571</link>
      <description>&lt;P&gt;Thanks a lot Craige&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Jul 2023 13:30:04 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/656716#M84571</guid>
      <dc:creator>Jackie_</dc:creator>
      <dc:date>2023-07-08T13:30:04Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724946#M90861</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;1&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2024 19:04:54 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724946#M90861</guid>
      <dc:creator>Jackie_</dc:creator>
      <dc:date>2024-02-22T19:04:54Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724978#M90872</link>
      <description>&lt;P&gt;I'm sure I've forgotten the bigger picture, but this bit&lt;/P&gt;
&lt;PRE&gt;&lt;STRIKE&gt;&lt;CODE class=" language-jsl"&gt;dtt = Open( "/Z:/failures.jmp" );// 109 inner rows

expand = 2;// how far to look for a failure
// these are paired, keep them in a Nx2 matrix...
fail = (dtt:X coord &amp;lt;&amp;lt; get values) || (dtt:Y coord &amp;lt;&amp;lt; get values);
// get min and max of the matrix columns
failmin = V Min( fail );
failmax = V Max( fail );
// find the +/- 2 area of interest
colmin = failmin[1] - expand;
colmax = failmax[1] + expand;
rowmin = failmin[2] - expand;
rowmax = failmax[2] + expand;&lt;/CODE&gt;&lt;/STRIKE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;STRIKE&gt;is identifying a containing rectangle about the points in the failures table. Fail is a 2-D matrix of 2 columns by N rows. failmin and failmax are each 2-element matrices with the minX,minY or maxX,maxY values.&lt;/STRIKE&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRIKE&gt;colmin...rowmax are expanded by expand, because, as I recall, some part of the rest of the code needed to peek a bit further out of the rectangle. bigpatch is allocated that big. (bigpatch actually starts at the 1,1 origin.)&lt;/STRIKE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRIKE&gt;So I don't think abs() is what you want to do. I don't understand what you mean about selecting 2 dies from the failing region. Are you wanting to make the selected area inflated a bit more, fatter, with a two-die thicker border? Or are you wanting to identify two of the dies? I'm guessing you want a thicker border; I think that is what the nearFailure() function is doing...checking in the expand region to see if there is a nearby failure.&lt;/STRIKE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRIKE&gt;It looks like maybe you just need to make expand be bigger, say 3 or 4 instead of 2. Note the "rounder" comment as well; it might make sense to use that radius calculation for larger expand values.&lt;/STRIKE&gt;&lt;/P&gt;
&lt;P&gt;edit:&lt;/P&gt;
&lt;P&gt;&lt;a href="https://community.jmp.com/t5/user/viewprofilepage/user-id/17878"&gt;@Jackie_&lt;/a&gt; OK, the JSL does not work correctly with coordinates smaller than 3 because the 'bigpatch' matrix has no way to handle them.&lt;/P&gt;
&lt;P&gt;There are two (maybe three) ways to fix it.&lt;/P&gt;
&lt;P&gt;1) in both of the input tables, add a constant to all the Ys (and Xs if needed) so the smallest value is 3 or more.&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;2) rework the bigpatch matrix so its extent is max-min in both dimensions and so the indexing includes the offset.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;disadvantage to 1 is the graphs will be labeled with the constant offset. -60 will become 3.&lt;/P&gt;
&lt;P&gt;disadvantage to 2 is it is a moderately tricky change.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3) You might know why the numbers are negative (actually &amp;lt; 3) and have another way to work-around the problem.&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2024 01:35:15 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724978#M90872</guid>
      <dc:creator>Craige_Hales</dc:creator>
      <dc:date>2024-02-22T01:35:15Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724983#M90873</link>
      <description>&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2024 19:05:22 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724983#M90873</guid>
      <dc:creator>Jackie_</dc:creator>
      <dc:date>2024-02-22T19:05:22Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724984#M90874</link>
      <description>&lt;P&gt;I think Option 2 would make more sense. I would appreciate if you could share the modified matrix logic for big patch.&amp;nbsp;&lt;SPAN&gt;I'm not exactly sure how to use fix this&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Feb 2024 02:01:32 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/724984#M90874</guid>
      <dc:creator>Jackie_</dc:creator>
      <dc:date>2024-02-22T02:01:32Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/725137#M90918</link>
      <description>&lt;P&gt;You might try something like this. It is a better approach, I think, but will probably have its own set of problems, so test carefully.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;// all new code, all new bugs, check carefully to see if this does what you want

dtt = Open( "/Z:/failures(2).jmp" );
dtS = Open( "/Z:/Summary Bins(2).jmp" );

// the X-Y die coordinates are expected to be integers between -9,999,996 and +9,999,996
encodeLimit = 1e7; // pack/unpack two signed 7-digit integers in one 14-digit number

// a "key" is an X-Y pair packed into a single number. It is called a key
// because it is used as a key in an associative array. These next two
// routines convert between the two representations

keysToXY = Function( {keys},
	{x, y},
	x = Round( keys / encodeLimit );
	y = keys - x * encodeLimit;
	x || y;
);

XYtoKeys = Function( {xy},
	xy[0, 1] * encodeLimit + xy[0, 2]
);

// load the X-Y pairs that describe failure positions
failXY = dtt[0, {x coord, y coord}];
// elementary sanity checks
If( Any( failXY &amp;lt;= -encodeLimit + 4 ) | Any( failXY &amp;gt;= encodeLimit - 4 ),
	Throw( "data range" )
);
If( Any( failXY != Floor( failXY ) ),
	Throw( "integer coords" )
);

// convert X-Y failure locations to keys, verify they convert back again
failkeys = XYtoKeys( failXY );
If( !All( keysToXY( failkeys ) == failXY ),
	Throw( "encode/decode 1" )
);

// template for nearby points. THIS TABLE ENCODES THE 2 PIXEL BORDER.
// you might, or might not, want the corners included; the corners are
// commented out because I like the rounded appearance better.
template = [
//-2 -2, // corner
-2 -1, 
-2 0, 
-2 1, 
//-2 2, // corner
-1 -2, 
-1 -1, 
-1 0, 
-1 1, 
-1 2, 
0 -2, 
0 -1, 
0 0, // center
0 1, 
0 2, 
1 -2, 
1 -1, 
1 0, 
1 1, 
1 2, 
// 2 -2, // corner
2 -1, 
2 0, 
2 1
//, 2 2 // corner
];
// convert the template X-Y pairs into keys, verify they convert back again
templatekeys = XYtoKeys( template );
If( !All( keysToXY( templatekeys ) == template ),
	Throw( "encode/decode 2" )
);

// somthing very cool is going to happen next: template keys will be added to a failure 
// key to get a set of keys around the failure key. The template, above, represents a
// square (with rounded corners) about an origin. Adding a failure key moves the
// origin to the X-Y failure point. All the nearby locations are then inserted into a
// collection (associative array) of points that are within 2 of a failure point.
// When done, the actual failure points are removed from the collection, leaving the
// collection as the 2-wide border.

// use AssociativeArray as a set to hold the key values;
// the nearbyPoint set gets populated with both the failure
// points AND the points that are nearby as identified by the template.
nearbyPoints = Associative Array();
For Each( {failkey}, failkeys,
	nearbykeys = failkey + templatekeys; // nearby is the same shape as template, but at failkey, not 0,0
	nearbyPoints &amp;lt;&amp;lt; Insert( Associative Array( nearbykeys ) );
);
// now remove the set of points formed from all the failures...after this, 
// nearbypoints is the 2-cell boundary without the interior.
nearbyPoints &amp;lt;&amp;lt; Remove( Associative Array( failkeys ) );

// now make a table for a plot. red are from the failures table, blue are the border.

border = keysToXY( Matrix( nearbypoints &amp;lt;&amp;lt; getkeys ) ) || J( N Items( nearbypoints ), 1, 1 );
center = failXY || J( N Rows( failXY ), 1, 2 );
dtg = As Table( border |/ center, &amp;lt;&amp;lt;columnnames( {"x coord", "y coord", "highlight"} ) );
dtg &amp;lt;&amp;lt; Graph Builder(
	Size( 1493, 888 ),
	Show Control Panel( 0 ),
	Variables( X( :x coord ), Y( :y coord ), Color( :highlight ) ),
	Elements( Points( X, Y, Legend( 8 ) ) ),
	SendToReport( Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 2 ), Marker Drawing Mode( "Normal" )} ) )
);

//////////////// check this carefully; I'm not at all sure it does what you want ///////////////
// I don't know what the summary bins represents or why it has the odd cut-out areas.

dtS &amp;lt;&amp;lt; deletecolumns( highlight ); // remove the old highlight, replace with new
dtS &amp;lt;&amp;lt; Update( With( dtg ), Match Columns( :X coord = :x coord, :Y coord = :y coord ) );
dtS:highlight &amp;lt;&amp;lt; Set Modeling Type( "Ordinal" );
dtS &amp;lt;&amp;lt; Select Where( :highlight == 1 ) &amp;lt;&amp;lt; Markers( "Dot" );
dtS &amp;lt;&amp;lt; Select Where( :highlight == 2 ) &amp;lt;&amp;lt; Markers( "FilledCircle" );
dtS &amp;lt;&amp;lt; clear select;

dtS &amp;lt;&amp;lt; Graph Builder(
	Size( 875, 811 ),
	Show Control Panel( 0 ),
	Variables( X( :X coord ), Y( :Y coord ), Color( :highlight ) ),
	Elements( Points( X, Y, Legend( 7 ) ) ),
	SendToReport(
		Dispatch( {}, "X coord", ScaleBox, {Format( "Best", 12 )} ),
		Dispatch( {}, "Y coord", ScaleBox, {Format( "Best", 12 )} ),
		Dispatch( {}, "400", ScaleBox,
			{Legend Model(
				7,
				Properties( -1, {gradient( {Color Theme( "Green to Black to Red" )} )}, Item ID( "highlight", 1 ) ),
				Properties( -1, {Line Color( -58112 ), Fill Color( -58112 )}, Item ID( "Y coord", 1 ) )
			)}
		),
		Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 1 ), Marker Drawing Mode( "Normal" )} )
	)
);
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="capture.png" style="width: 921px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/61399i00F1D5DEBF613925/image-size/large?v=v2&amp;amp;px=999" role="button" title="capture.png" alt="capture.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Feb 2024 01:01:54 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/725137#M90918</guid>
      <dc:creator>Craige_Hales</dc:creator>
      <dc:date>2024-02-23T01:01:54Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/725255#M90938</link>
      <description>&lt;P&gt;&lt;BR /&gt;You made my life easier. Thanks a lot, Craige!&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2024 15:55:00 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/725255#M90938</guid>
      <dc:creator>Jackie_</dc:creator>
      <dc:date>2024-02-27T15:55:00Z</dc:date>
    </item>
    <item>
      <title>Re: Select 2 rows from failing die</title>
      <link>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/725279#M90943</link>
      <description>&lt;P&gt;this might work:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;templatesize=15;
templateround = 1; // 0: square corners   1: round corners    2: diamond corners
templatelist = {};
for(x=-templatesize, x&amp;lt;=templatesize, x+=1,
	for(y=-templatesize, y&amp;lt;=templatesize, y+=1,
		if(templateround==0 // use all neighbor points
		| (templateround==1 &amp;amp; round(sqrt(x^2+y^2))&amp;lt;=templatesize) // use neighbors near or inside the circle
		| (templateround==2 &amp;amp; sqrt(x^2+y^2)&amp;lt;=templatesize) // use neighbors inside the circle
		,//
			templatelist[nitems(templatelist)+1] = evallist({x,y});
		)
	)
);
show(templatelist);
template = matrix(templatelist);
//astable(template)&amp;lt;&amp;lt;Graph Builder(
//	Variables( X( :Col2 ), Y( :Col1 ) ),
//	Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
//);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="capture.png" style="width: 999px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/61445i7D643065AD650CD1/image-size/large?v=v2&amp;amp;px=999" role="button" title="capture.png" alt="capture.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 23 Feb 2024 15:47:56 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/Select-2-rows/m-p/725279#M90943</guid>
      <dc:creator>Craige_Hales</dc:creator>
      <dc:date>2024-02-23T15:47:56Z</dc:date>
    </item>
  </channel>
</rss>

