Workaround for fake file in memory?

4 visualizaciones (últimos 30 días)
Ray Lee
Ray Lee el 7 de Sept. de 2015
Respondida: Walter Roberson el 7 de Sept. de 2015
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?)?

Respuesta aceptada

Walter Roberson
Walter Roberson el 7 de Sept. de 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.

Más respuestas (2)

Image Analyst
Image Analyst el 7 de Sept. de 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.

Guillaume
Guillaume el 7 de Sept. de 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.

Categorías

Más información sobre External Language Interfaces en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by