GPTIPS 2, Symbolic Regression. Error

40 views (last 30 days)
Hi,
I'm using GPTIPS 2 (https://sites.google.com/site/gptips4matlab/) to come up with a model that fits some data. The code runs, and I get the pareto front of models etc. However, I’m getting an error related to the symbolic toolbox.
For instance, when using “gpmodelreport(gp,84)” I get a screen print saying “Simplifying model ...” and then, an error
Error using gpmodel2sym (line 103)
Could not get symbolic object(s) for this model. Error using sym>convertChar (line 1459)
Character vectors and strings in the first argument can only specify a variable or number. To evaluate character vectors and strings representing symbolic expressions, use ‘str2sym’.
That error also shows up when I do “comparemodelsREC”, “gpmodel2sym”, “uniquegenes”...
Any idea?
Cheers!
LJ
  1 Comment
Luis J Gilarranz
Luis J Gilarranz on 15 Feb 2019
I've narrowed down the error to the function gppretty.m, but substituting "sym" for "str2sym" doesn't solve the problem

Sign in to comment.

Accepted Answer

xox ir
xox ir on 18 Mar 2019
Hello,
please create this function:
function y=xsym(x)
if isnumeric(x)
x=num2str(x);
end
y=str2sym(x);
Then add the code below:
if~verLessThan('matlab','9.3');sym=@xsym;end
At the begaining of gppretty.m
2019-03-18_102852.jpg
  1 Comment
Luis J Gilarranz
Luis J Gilarranz on 22 May 2019
Hi xox ir,
After following your instructions "gpmodelreport" works, however, when I want to use the gene browser to simplify the model I get the following error:
genes = uniquegenes(gp)
Scanning 100 models ...
Total encoded genes found: 373
Unique encoded genes found: 49
Decoding & simplifying genes...please wait.
Simplifying gene 1
Error using sym>convertChar (line 1459)
Character vectors and strings in the first
argument can only specify a variable or number. To
evaluate character vectors and strings
representing symbolic expressions, use 'str2sym'.
Error in sym>tomupad (line 1225)
S = convertChar(x);
Error in sym (line 214)
S.s = tomupad(x);
Error in uniquegenes (line 137)
symgenes{i} =
sym(genes.uniqueGenesDecoded{i});
Any idea?
Cheers,
LJ

Sign in to comment.

More Answers (0)

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!