On Fri, 18 Nov 2011, Annaert Jan wrote:
Is there a reason why functions like missing, misszero and
zeromiss are not available for matrices?
Yes, the concept of a "missing value" (gretl's "NA") does not
apply to matrices. Matrices may contain infinities and NaNs
(not-a-number) under some conditions, but they can't contain
NAs. That's because we use straight IEEE arithmetic in matrix
computations, and while IEEE knows how to handle infinities
and NaNs it has no notion of NAs.
The ok function does seem to work with matrices (in contrast
to the function reference).
Good point. When a matrix is fed to ok() it works as a
detector of non-finite values. I'll put that information into
the function reference.
Note that if you really need it you can construct a function
to turn non-finite elements of matrix into zeros:
<hansl>
function void matrix_misszero (matrix *m)
loop j=1..cols(m) -q
loop i=1..rows(m) -q
if !ok(m[i,j])
m[i,j] = 0
endif
endloop
endloop
end function
matrix m = 3*I(2)
m[2,2] = 0/0
print m
matrix_misszero(&m)
print m
</hansl>
Allin Cottrell