#1453 closed doubt (fixed)
Select en matrices — at Version 3
Reported by: | imendez | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | high | Milestone: | Mantainance |
Component: | Kernel | Version: | 3.1 |
Severity: | normal | Keywords: | |
Cc: | atorre@…, optcob.banamx@… |
Description (last modified by )
Hola,
Tengo una matriz colmuna que tiene omitidos. Me gustaría reducir la dimensión de esa matriz quedándome con las filas cuyo dato no es omitido. ¿Lo debo hacer con el paquete MatQuery? ¿Con qué función?
Más en general, ¿existe una función similar al Select de Set en ese paquete? Me refiero a que permita definir una condición de tipo Real para seleccionar los elementos.
Gracias.
Un saludo.
Change History (3)
comment:1 Changed 13 years ago by
comment:3 Changed 13 years ago by
Description: | modified (diff) |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Efectivamente ese es el paquete que se ocupa de esas cosas, en particular, se precisa la versión MatQuery.3.4
para seleccionar datos no omitidos tal y como se ve en este ejemplo:
#Require MatQuery; //Genero una matriz con un porcentage aproximado del 20% de omitidos Real N = 100; Matrix M = IfMat(LE(Rand(N,1,0,1),0.2),?,Rand(N,1,-10,10)); //Calculo los indices de filas con datos no omitidos Set selKnown = MatQuery::SelectRowsFullKnown(Mat2VMat(M)); //Extraigo las filas con datos no omitidos Matrix M.known = SubRow(M,selKnown);
Obsérvese que el paquete está diseñado para operar sobre VMatrix
por lo que si se tiene una Matrix
hay que convertirla primeo con Mat2VMat
.
Para seleccionar las filas con un valor concreto se usaría MatQuery::SelectRowsWithValue
y hay otros métodos de selección específicos para un conjunto de valores, para un rango, para un entorno hiperesférico o hipercúbico, etc.
Lo más sencillo es explorar el paquete en TolBase y mirar las descripciones en el inspector de objetos como en esta imagen
(In [4205]) Refs #1453
Adding missed method SelectRowsFullKnown