Thread Subject: Minimize a c++ function with matlab

Subject: Minimize a c++ function with matlab

From: David Doria

Date: 13 Mar, 2008 12:04:15

Message: 1 of 2

Recently I've been looking into the matlab engine for
calling matlab from c++. I would like to utilize fminunc()
from a c++ program. Say I have a c++ function:

int MyFunc(int Param)
{
  return pow(Param,2);
}

Is there anyway to pass this function to fminunc()?? Seems
like a reasonable thing to want to do, but from what I know
about the engine I have no idea how to approach it.

Any tips would be great!

Thanks,

David

Subject: Minimize a c++ function with matlab

From: James Tursa

Date: 13 Mar, 2008 17:48:02

Message: 2 of 2

"David Doria" <daviddoria@gmail.com> wrote in message
<frb57u$die$1@fred.mathworks.com>...
> Recently I've been looking into the matlab engine for
> calling matlab from c++. I would like to utilize fminunc
()
> from a c++ program. Say I have a c++ function:
>
> int MyFunc(int Param)
> {
> return pow(Param,2);
> }
>
> Is there anyway to pass this function to fminunc()??
Seems
> like a reasonable thing to want to do, but from what I
know
> about the engine I have no idea how to approach it.
>
> Any tips would be great!
>
> Thanks,
>
> David

One approach would be to create a mex function that takes
your desired mxArray input (i.e., prhs[0]), calls mxGetData
(prhs[0]) to get the pointer to the data, pass that
pointer to your C++ MyFunc function, and put the result of
the MyFunc call into a new mxArray created by you in plhs
[0]. This mex function could then be called by the MATLAB
engine, and in particular the function fminunc(), where
the input function handle fun is a handle to the mex
function. You could invoke it from an engine application
through judicious use of engPutVariable, engEvalString,
and engGetVariable calls.

James Tursa

Tags for this Thread

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

rssFeed for this Thread

Contact us at files@mathworks.com