How to apply a generated filename to the mex command?

In a .m file, I am able to run mex on a file e.g. mex myfile8_1.c and then successfully call the resulting mex function with myfile8_1()
In fact the "8_1" component may change, so I construct a string and use str2func() to generate the function name to use. However when I construct a string to use as input for mex, mex fails e.g.
script_version = "8_1";
process_filename = strcat("myfile", script_version, ".c");
mex process_filename
This results in an error that no file named process_filename exists in the current directory (but of course "myfile8_1.c" does exist).
Where str2func() is able to convert a string to a function variable, is there something similar which will convert a string into a filename variable in a way acceptable to the mex command?
Alternatively is there a way to tell mex to treat the next input is a variable rather than an actual filename?
Thanks for any help,
chris

 Accepted Answer

script_version = "8_1";
process_filename = strcat("myfile", script_version, ".c");
mex(process_filename)

1 Comment

If I have additional .c files to be compiled at the same time, can I then just add more filename variables?
e.g.
mex(process_filename, ran1_filename, gasdev_filename)
(where ran1_filename = "ran1.c" and gasdev_filename = "gasdev.c") ??
It seems to work.
Thanks,
chris

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2025b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!