Filter löschen
Filter löschen

Function handle invoking Java reports syntax error?

2 Ansichten (letzte 30 Tage)
Ahmed Fasih
Ahmed Fasih am 6 Mär. 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 Kommentar
Ahmed Fasih
Ahmed Fasih am 7 Mär. 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)))

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Laurens Bakker
Laurens Bakker am 7 Mär. 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

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by