problem about returning a matrix
Alain Baeckeroot
alain.baeckeroot at laposte.net
Tue Apr 7 08:39:48 CDT 2009
Le 07/04/2009 à 13:54, ozalpi a écrit :
>
> Hi, we want to develop a function that returns a matrix but we couldn't be
> able to convert this matrix or more simply a list to an octave_value_list to
> return the result. Only the first element of the matrix is seen from octave.
> Can anyone help us about this problem we have?
>
> Our code segment is:
>
> #include <octave/oct.h>
> ...
> ...
> DEFUN_DLD(...)
> {
> octave_value_list retval;
> for(int i = 0; i < row1; i++)
> {
> for(int j = 0; j < column1; j++)
> {
> out >> x;
> retval(i*column1 + j)=octave_value(x);
> }
> }
> return retval;
> }
i have this to return a Matrix:
...
#include <octave/oct.h>
...
...
DEFUN_DLD(...)
{
....
Matrix X(n, k); // now we know there's data, so let's assign it
for (long i = 0; i < n; i++) // loop over all elements, and convert to doubles
for (long j = 0; j < k; j++)
sscanf(PQgetvalue(res, i, j), "%lf", &X(i, j));
/* cleanup and close the connection to the database */
...
retval(0) = X; // set the return vector and
return retval;
}
More information about the Help-octave
mailing list