passing parameters to dynamically-linked functions

Thomas L. Scofield scofield at calvin.edu
Wed Aug 6 07:50:27 CDT 2008


What I chose to do was put all the optional parameters in a cell  
array (do that in the .m file) and pass that along to the dynamically  
linked file.  That's probably unnecessary work, but I got more  
comfortable with the Octave API in the process.  One thing I did not  
learn how to do is access a 2D cell array from within the dynamically  
linked function.

   std::string target = args (0).string_value ();
   Cell c = args (1).cell_value ();
   octave_idx_type numswitches = c.length ();
   octave_idx_type i = 0;
   while (i < c.nelem ()/2 && target.compare (c.elem 
(2*i).string_value ())) i++;

seems to work fine (I've packed both the option itself, say  
"Quality", along with its setting, say 75, into the cell array one  
right after the other), but things did not seem to work when I had  
them side-by-side in a 2D array.  I had some other bugs along the  
way, so perhaps I ought to try it again.

At any rate, I was mainly concerned with whether there was some  
standard way to pass parameters like these along, and if there was  
wanted to follow the convention.

On Aug 5, 2008, at 11:18 PM, John W. Eaton wrote:

> On 31-Jul-2008, Thomas L. Scofield wrote:
>
> |
> | Parameters in Matlab are often passed in the manner
> |
> |     functionName ( ..., 'parameterName', 'parameterValue' )
> |
> | I am wondering if there is an established approach for organizing
> | such parameters, perhaps in a cell array(?), so that they are easily
> | passed on to and parsed within a dynamically-linked function.
> | Perhaps the kind of answer I am looking for goes like this: "for an
> | example, see the m-file ______ which accepts additional parameters
> | like these and then passes them along to the dynamically-linked
> | function _______."
>
> I can't think of a specific example, but I think you would probably
> want to call the dynamically linked function from the .m file with
>
>   args = varargin(first_parameter_arg:end);
>   dynamically_linked_function (..., args{:});
>
> or similar so that the dynamically linked function just sees a normal
> argument list in an octave_value_list object..
>
> Does that help?
>
> jwe
>
>

Thomas L. Scofield
--------------------------------------------------------
Associate Professor
Department of Mathematics and Statistics
Calvin College
--------------------------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.cae.wisc.edu/pipermail/octave-maintainers/attachments/20080806/4cdca6ce/attachment.html 


More information about the Octave-maintainers mailing list