close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Closed 15 years ago

#815 closed defect (fixed)

Inadecuate response of submatrix functions in trivial cases

Reported by: pgea@… Owned by: Víctor de Buen Remiro
Priority: highest Milestone: Mantainance
Component: Math Version:
Severity: critical Keywords:
Cc:

Description

Las funciones Sub, SubRow y SubCol para matrices (Matrix) devuelven un valor inadecuado cuando se les pide que construyan una submatriz sin filas o columnas.

Ejemplo:
Matrix SubRow(matriz_3x4, Empty)
devuelve una matriz_0x0 cuando esperaría una matriz_0x4

Ejemplos análogos se pueden construir con Sub y SubCol.

Este comportamiento sin embargo es el adecuado con las VMatrix.

Los problemas relacionados con éstos "bugs" ocurren normalmente cuando se usan matrices para seleccionar subconjuntos de valores.
Especialmente son "traumáticos" cuando luego se concatenan las submatrices: imagínese que de una matriz se extraen filas de acuerdo a distintos grupos de filas (en las que un grupo es vacío) y luego se desea construir una matriz concatenado esas filas.

Aprovecho para comentar alguna otra cosa:

  • Sería util tener una función Zeros(rows, columns) también para la gramática Matrix. Al menos sería más elegante que convertir a Matrix la salida del Zeros de VMatrix o generar una matriz aleatoria con media y varianza cero.
  • Creo que la matriz desconocida UnknownMatrix debería ser una matriz 0x0 y no una matriz de 1x1 con un omitido.

Change History (2)

comment:1 Changed 15 years ago by Víctor de Buen Remiro

Status: newaccepted

De acuerdo. También he pensado que sería bueno tener las funciones constantes

  Matrix Constant(Real nrow, Real ncol, Real value) 

en lugar de usar

  Rand(nrow,ncol,value,value)

comment:2 Changed 15 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: acceptedclosed

(In [1807]) Fixes #815

Note: See TracTickets for help on using tickets.