It’s World Statistics Day! To honor the theme of the day, the JMP User Community is having conversations about the importance of trust in statistics and data. And we want to hear from you! Tell us the steps you take to ensure that your data is trustworthy.
Choose Language Hide Translation Bar
Highlighted

## Simple Matrix Creation Question

I have some code where I need to pass a matrix with one value to highlight one row in a table box:

``````nw = new window("test",
tb = table box(
string col box("Col1", {"aa", "bb", "cc"}),
number col box("Col2", [1, 2, 3])
)
);
rm = ;
tb << set selected rows(rm);
``````

The row number to be highlighted is a variable.  I would like to use the simplest syntax to create the row number matrix using this variable.  These methods don't work:

``````a = 2;		// Need a matrix holding this variable value
b = [a];	// Doesn't work
c = [expr(a)];	// No
d = [eval(a)];	// No
e = [eval(expr(a))];	// No``````

These are the methods I came up with that do work:

``````// Works but so complicated...
f = eval(parse(evalinsert("[^a^]")));	// Yes

// Works too
g = ;
g = a;	// Yes``````

Is there a simpler one-liner that I'm missing?  I just want to create a matrix like  dynamically.

2 ACCEPTED SOLUTIONS

Accepted Solutions
Highlighted  Jeff_Perkinson Community Manager

## Re: Simple Matrix Creation Question

I think the Matrix() function will do what you're looking for:

``````//:*/
a=2;
b=matrix(a);
/*:

``````

``````a = 2;
nw = New Window( "test",
tb = Table Box(
String Col Box( "Col1", {"aa", "bb", "cc"} ),
Number Col Box( "Col2", [1, 2, 3] )
)
);
rm = Matrix( a );
tb << set selected rows( rm );``````
-Jeff
Highlighted

## Re: Simple Matrix Creation Question

The original process was to make a matrix from a scalar, so I guess you are asking how to return a scalar from a matrix. Use subscript to access any element in the matrix.

``````// make 1x1 matrix (one element)
a = ;

// obtain element with a script using row-wise index or [row,col] coordinate
b = a;
b = a[1,1];``````
Learn it once, use it forever!
5 REPLIES 5
Highlighted  Jeff_Perkinson Community Manager

## Re: Simple Matrix Creation Question

I think the Matrix() function will do what you're looking for:

``````//:*/
a=2;
b=matrix(a);
/*:

``````

``````a = 2;
nw = New Window( "test",
tb = Table Box(
String Col Box( "Col1", {"aa", "bb", "cc"} ),
Number Col Box( "Col2", [1, 2, 3] )
)
);
rm = Matrix( a );
tb << set selected rows( rm );``````
-Jeff
Highlighted

## Re: Simple Matrix Creation Question

Ha - perfect!  Thanks Jeff.

Highlighted

## Re: Simple Matrix Creation Question

Hi,

How do I perform this concept in reverse?

a=

b=2

?

Highlighted

## Re: Simple Matrix Creation Question

The original process was to make a matrix from a scalar, so I guess you are asking how to return a scalar from a matrix. Use subscript to access any element in the matrix.

``````// make 1x1 matrix (one element)
a = ;

// obtain element with a script using row-wise index or [row,col] coordinate
b = a;
b = a[1,1];``````
Learn it once, use it forever!
Highlighted

## Re: Simple Matrix Creation Question

This works too:

``````a = 2;
// Concat scalar with empty matrix
b = a || [];
// Same, but in place
a ||= [];

Show(a, b);
/*:

a = ;
b = ;``````

Article Labels

There are no labels assigned to this post.