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