[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
About .oct file (2)
From: |
Shiou-Jhy Ja |
Subject: |
About .oct file (2) |
Date: |
Fri, 20 Mar 1998 15:41:12 -0600 |
Hi:
Thanks for peoples for replying my questions. But I didn't express my
question clear enough. What I need is to conver the octave
objects(Matrix, string, ...) to C++ objects(double *, char *,...).
Because I only have some c++ routines in the library form(no source
available), so I can't modify those source codes to make them accept
octave objects. Therefor, I need to transform the data which is send
from octave console back to the type that c++ compiler can accept.
For example:
A function available in tools.a:
double spline(double *x, double *y, double Ix)
and I like to call it from octave:
octave:> vec_Iy = Cspline( vec_x, vec_y, vec_Ix);
> In post "RE: About .oct filt":
>
>| for matrix, I use a silly way to do it:
>|
>| Matrix oct_x=arg(0).matrix_value();
>|
>| int n=oct_x.column(); //assume it's a row vector
>|
>| double *x=new double[n];
>|
>| for (int i=0; i<n; i++)
>| x[i]=oct_x(0,i);
>|
>| then I can call other routin with x
>
>You can extract the data from an Octave Matrix object using
>
> const double *d = val.matrix_value().data()
If I use the approach above, then the type mismatch happened(ie. const
double* and double*).
Another question is about converting octave object, string, to c++
object, char*, instead of assign a string to octave_value.
>..., you need to use
>
> arg(0).string_value().c_str()
>
>but that returns `const char *', so you can't use that as the first
>argument to strcpy. If you are trying to assing a character string to
>an Octave object, just do it:
>
> octave_value val = "foobar";
So how can I get a 'char *' instead of 'const char*'?
Thanks for your kindly help. Programing is not my major, so please
bear with my such simple questions!
Puck
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- About .oct file (2),
Shiou-Jhy Ja <=