problem about returning a matrix

Carlo de Falco carlo.defalco at gmail.com
Tue Apr 7 08:32:47 CDT 2009


On 7 Apr 2009, at 13:54, ozalpi wrote:

> 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;
> }


this function, as it stands, returns each element of the matrix as a  
separate variable..
I guess what you want to do is rather something like

#include <octave/oct.h>
...
...
DEFUN_DLD(...)
{
Matrix A;

for(int i = 0; i < row1; i++)
{
	for(int j = 0; j < column1; j++)
	{
		out >> x;
		A(i*column1 + j)=x;
	}
}
return octave_value(A);
}

c.


More information about the Help-octave mailing list