#1018 closed enhancement (fixed)
Variables dependientes en Set
| Reported by: | Ines Miranda | Owned by: | Pedro Gea |
|---|---|---|---|
| Priority: | major | Milestone: | Development 1A |
| Component: | ModelExcel | Keywords: | set, dataset, ModelExcel |
| Cc: | sippfe.valerd@… |
Description
Hola,
no sé si va contra la lógica inicial de la definición de variable, pero seria muy útil poder tener, en el ModelExcel, sets a partir de variables independientes, para poder utilizarlos en algunas de las expresiones de variables dependientes.
Por ejemplo, poder definir inputs en el modelo de la siguiente forma:
Vairables.I : Serie var1, Serie var2, Serie var3, Matrix mat1
Variables.D : set1 =var1,var2,var3?, Serie varD = mat1*set1
Gracias
Change History (2)
comment:1 Changed 13 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
comment:2 Changed 13 years ago by
| Milestone: | → Development 1A |
|---|
Note: See
TracTickets for help on using
tickets.
![(please configure the [header_logo] section in trac.ini)](/mms/chrome/site/logomms.png)
Realmente eso que dices no va en contra de ninguna asunción inicial, sin embargo sí que supone un cierto cambio en el diseño del módulo de variables que no es trivial.
Por ejemplo, en el bloque de funciones de ortogonalización (#1024) se introdujo una función para llevar a cabo lo mismo que aquí se plantea sin necesidad de definir una variable múltiple o de tipo set.
Para ello se tiene localizado un conjunto de variables (
Set variablesseleccionadas por algún criterio, (véase #1017) y una función (MMS::Ortho::GetSerie}) que permite la operación que necesitas.La creación de un nuevo conjunto de variables dependientes quedaría como:
Set For(1, Card(variables), Anything (Real i) { ... MMS::@Variable vDep = dataSet::CreateVariable([[ Text _.name = newName; Text _.type = "Serie"; // Nótese que %A representa a todo el conjunto de dependencias // y que la función MMS::Ortho::GetSerie espera dos argumentos: // (1) El primero es un conjunto con una matriz cuadrada y luego // tanta series como filas o columnas tiene la matriz. // (2) El segundo es el índice de una de las nuevas series obtenidas // al hacer un cambio de base con la matriz y las series. Text _.expression = "Serie MMS::Ortho::GetSerie(%A, "<<i<<")"; Set _.dependences = [[ matrixName ]] << EvalSet(variables, Name) ]]) })