MATLAB Answers

Workaround for fake file in memory?

7 views (last 30 days)
I have a mex function which reads data from a file and process it
result = mex_process_data(string_path_to_file);
The data is downloaded from website directly using
data = urlread2(url);
Now I save the data to a file and pass the filepath to the mex function. The IO is time-wasting. Is there a way to pass the data directly to the mex function without saving it to a temporary file (using Java class?)?

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 7 Sep 2015
urlread2 is from the File Exchange . It outputs a string, not a file. If you are writing to a file then that is in your own code.
If the mex requires a filename instead of a string, then change the mex. Or write to an solid state drive, or to a ramdisk.

  0 Comments

Sign in to comment.

More Answers (2)

Image Analyst
Image Analyst on 7 Sep 2015
I don't think so. If the mex file was written to accept a text string that represents a filename, then you're stuck with that. If you want it to accept a numerical array then you'd have to rewrite the mex code to do that.

  0 Comments

Sign in to comment.


Guillaume
Guillaume on 7 Sep 2015
There's nothing built into matlab for this and yes, it would be nice if matlab io supported streams instead of just concrete files.
The only way I can think to work around this (short of rewriting your mex so it does the url fetching itself) is to implement a ram drive.

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by