Question de création de matrice simpleJ'ai un code où je dois passer une matrice avec une valeur pour mettre en surbrillance une ligne dans une zone de tableau:
nw = new window("test",
tb = table box(
string col box("Col1", {"aa", "bb", "cc"}),
number col box("Col2", [1, 2, 3])
)
);
rm = [2];
tb << set selected rows(rm);
Le numéro de ligne à mettre en surbrillance est une variable. J'aimerais utiliser la syntaxe la plus simple pour créer la matrice de numéros de lignes à l'aide de cette variable. Ces méthodes ne fonctionnent pas:
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
Ce sont les méthodes que je suis venu avec qui fonctionnent:
// Works but so complicated...
f = eval(parse(evalinsert("[^a^]"))); // Yes
// Works too
g = [1];
g[1] = a; // Yes
Y a-t-il un one-liner plus simple qui me manque? Je veux juste créer une matrice comme [2] dynamiquement.
Re: Question de création de matrice simpleHa - parfait! Merci Jeff.
Re: Question de création de matrice simpleJe pense que la fonction Matrix () fera ce que vous cherchez:
//:*/
a=2;
b=matrix(a);
/*:
[2]
Dans votre exemple d'origine:
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 );Re: Question de création de matrice simpleSalut,
Comment puis-je exécuter ce concept à l'envers?
a = [2]
b = 2
?
Re: Question de création de matrice simpleLe processus original consistait à créer une matrice à partir d'un scalaire. Je suppose donc que vous demandez comment retourner un scalaire à partir d'une matrice. Utilisez indice pour accéder à n’importe quel élément de la matrice.
// make 1x1 matrix (one element)
a = [2];
// obtain element with a script using row-wise index or [row,col] coordinate
b = a[1];
b = a[1,1];
Re: Question de création de matrice simpleCela fonctionne aussi:
a = 2;
// Concat scalar with empty matrix
b = a || [];
// Same, but in place
a ||= [];
Show(a, b);
/*:
a = [2];
b = [2];