Function handle invoking Java reports syntax error?

1 visualización (últimos 30 días)
Ahmed Fasih
Ahmed Fasih el 6 de Mzo. de 2012
Why does
d='.'; mylength = length(java.io.File(d).listFiles(org.apache.commons.io.filefilter.WildcardFileFilter('*.dat')))
work, but a function handle for input "d" fail with a syntax error?
length_func = @(d) length(java.io.File(d).listFiles(org.apache.commons.io.filefilter.WildcardFileFilter('*.dat')))
??? Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
  1 comentario
Ahmed Fasih
Ahmed Fasih el 7 de Mzo. de 2012
This following does work:
helper=@(f) f.listFiles(org.apache.commons.io.filefilter.WildcardFileFilter('*.dat'))
length_func = @(d) length(helper(java.io.File(d)))

Iniciar sesión para comentar.

Respuestas (1)

Laurens Bakker
Laurens Bakker el 7 de Mzo. de 2012
Hi Ahmed,
anonymous functions are not allowed to store any data, and accessing a field of java.io.File(d) probably implicitly does this.
Cheers,
Laurens

Categorías

Más información sobre Call Java from MATLAB en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by