Find dictionary entries with value type from Java

Hi,
I am trying to execute from Java and through the feval function the following command:
engine.feval("find",dictionarySectionHandle, "-value", "-class", "Simulink.Parameter");
However I get the following error:
find.
'-value' is not a valid option to findobj.
In the documentation [Find Function] it specifies that we should call the find function on the list of entries but I have tested the function in MATLAB's command line (as follows) and it works fine.
find(dictionarySectionHandle, '-value','-isa', 'Simulink.Parameter')
What am I doing wrong?
Thanks

3 Comments

try 'value' without the '-'?
Thanks Fangjun,
Unfortunately, excuting with
find(dictionarySectionHandle, 'value','-isa', 'Simulink.Parameter')
still complains with the following error:
Error using Simulink.data.dictionary.Section/find
Incomplete parameter-value pair.
The document has an example syntax
foundEntries = find(myEntryObjs,'-value','-class','Simulink.Parameter')

Sign in to comment.

Answers (1)

It appears that MATLAB is converting the java String arguments to MATLAB strings which is causing the error for example the pure MATLA, B command:
feval("find", dictionarySectionHandle, "-value", "-class", "Simulink.Parameter")
Error using Simulink.data.dictionary.Section/find
'-value' is not a valid option to findobj.
Produces the same error that your engine command does, while:
feval("find", dictionarySectionHandle, '-value', "-class", "Simulink.Parameter")
ans =
3×1 Entry array with properties:
Name
DataSource
LastModified
LastModifiedBy
Status
works. You might try the using:
valueArg = engine.feval('char', "-value");
engine.feval("find", dictionarySectionHandle, valueArg, "-class", "Simulink.Parameter")

Products

Release

R2018b

Asked:

on 11 Jul 2019

Answered:

on 13 Jul 2019

Community Treasure Hunt

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

Start Hunting!