|
On Thu, 30 Jul 2009 08:04:01 -0400, Dhiman Saha <saha.dhiman@gmail.com>
wrote:
> "James Tursa" <aclassyguywithaknotac@hotmail.com> wrote in message
> <h4riko$h57$1@fred.mathworks.com>...
>> "Dhiman Saha" <saha.dhiman@gmail.com> wrote in message
>> <h4qrph$6o5$1@fred.mathworks.com>...
>> > "James Tursa" <aclassyguywithaknotac@hotmail.com> wrote in message
>> <h4qhv1$t3$1@fred.mathworks.com>...
>> > > "Dhiman Saha" <saha.dhiman@gmail.com> wrote in message
>> <h4qaei$10m$1@fred.mathworks.com>...
>> > > > I want to open a mat file which has some two dimensional matrices
>> in a C file. I followed the help file on that but when i compile the
>> file i get lots of errors like "undefined reference to matOpen" and
>> such errors for all the matlab functions. I have included the mat.h
>> file in the include directory of the compiler. I am using the minGW
>> compiler on windows XP.
>> > > >
>> > > > IS there anything I need to include?
>> > > >
>> > > > Thanks
>> > > > Dhiman
>> > >
>> > > Have you also included mex.h or engine.h? Can you show the source
>> code you are trying?
>> > >
>> > > James Tursa
>> >
>> > I just tried to compile the matdgns.c file given in matlab
>> > edit([matlabroot '/extern/examples/eng_mat/matdgns.c']);
>> > This file does not have any mex.h or engine.h included.
>> >
>>
>> I just tried it and it compiled and ran fine. Here is what I did:
>>
>> - Copied the file matdgns.c from the [matlabroot
>> '/extern/examples/eng_mat'] directory to a work directory.
>>
>> - Made that work directory the current directory
>>
>> - Issued the following mex -setup command:
>>
>> mex -setup
>> (then selected the MS VC 8.0 compiler)
>>
>> - Issued the following commands (for MS VC 8.0):
>>
>> options = [matlabroot '\bin\win32\mexopts\msvc80engmatopts.bat'];
>> mex('-f', options, 'matdgns.c', '-v');
>>
>> - Ran the program with the following command:
>>
>> !matdgns matlab.mat
>>
>> James Tursa
>
>
> Thank you for the reply. But can i use matdgns.c file on the MinGW
> compiler. Also how can i open the mat file using C in a system that does
> not have matlab installed. (If its required I can also post this as a
> new problem.)
>
> Dhiman Saha
Dhiman,
I would first try out what James suggested to ensure that the documented
workflow runs cleanly. I would then start out customizing it for my
workflow.
Did you have a chance to peruse this document?
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/f30937.html
Or please paste this in the MATLAB command window:
web([docroot,'/techdoc/matlab_external/f30937.html'])
Specially this section which talks about compilation and deployment to
systems without MATLAB.
Please find more details online at:
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/f19027.html
Or please paste this in the MATLAB command window:
web([docroot,'/techdoc/matlab_external/f19027.html'])
Another trick is to use the -v option with the mex command to figure out
the actual command line args sent to the compiler. You could use this
information to then configure your compiler outside MATLAB to pass the
required settings/libraries/include files.
|