Help text does not work for user-defined functions

15 visualizaciones (últimos 30 días)
Are Mjaavatten
Are Mjaavatten el 18 de En. de 2020
Editada: Matt J el 29 de Jun. de 2020
I just installed R2019b and the help function does not work. Example: I created the addme function from the Add Help for Your Program page in the documentation. Result:
>> help addme
addme is a function.
c = addme(a, b)
The help text in the file was not shown. Also:
>> help help
help not found.
A similar question was asked before, but the answer was not very helpful for me.
help seems to work ok for built-in functions.
  9 comentarios
Are Mjaavatten
Are Mjaavatten el 21 de En. de 2020
Editada: Are Mjaavatten el 21 de En. de 2020
>> which help
C:\Program Files\MATLAB\R2019b\toolbox\matlab\helptools\help.m
In R2014, where help works ok, the help text is created in line 55 of:
C:\Program Files\MATLAB\R2014b\toolbox\matlab\helptools\+HelpUtils\@helpProcess\getTopicHelpText.m:
[hp.helpStr, hp.needsHotlinking] = builtin('helpfunc', '-casesensitive', hp.topic, '-hotlink', hp.command);
In the correponding file in R2019, the help text is created in line 68:
getAlternateSourcedHelp(hp, [], justH1);
Oli B
Oli B el 20 de Mzo. de 2020
I have a similar problem with Matlab R2019a. I use functions that were written in previous versions of Matlab (2014 I think). I can use them, but when I try to get a function's help all it gives me is "myfunction is a function".
If I copy a function's code in a new script and save it from Matlab R2019a, it works correctly. So it is not a mistake in the function's code nor in the help's path. It looks like some kind of encoding error or incompatibilty between versions?
How can I solve this without having to resave 100+ functions?

Iniciar sesión para comentar.

Respuesta aceptada

Are Mjaavatten
Are Mjaavatten el 26 de Mayo de 2020
Problem solved - finally!
My Matlab 2019b and 2020a installations had several other odd behaviours in addition to the help problem. For instance none of the reports available from the Current Folder window worked. I finally decided to investigate this in more detail and found that I had a function strip.m in my Matlab path which shadowed the built-in function with the same name. It gave an error becuse it required two inputs and got only one. The error was not reported there because it was called in a try - catch section. Renaming my function to stripp.m solved both the help problem and the report problem, and some others as well.
  1 comentario
Matt J
Matt J el 29 de Jun. de 2020
Editada: Matt J el 29 de Jun. de 2020
Aaarggh. That worked for me, too. They really should use builtins or private/ Mcode for such essential commands.
Good catch.

Iniciar sesión para comentar.

Más respuestas (1)

Mark Tiede
Mark Tiede el 19 de Abr. de 2020
SOLVED – I had this problem as well: some (not all) user-written functions which used to show the correct documentation under r2018b would only show "<function_name> is a function" after updating to r2019b. In my case the problem (as suggested by Oli B) was Legacy Mac EOL encoding – after converting to Unix LF encoding the help for these problematic functions displayed correctly once again. Note that there are many ways to automate this conversion; see e.g. this page.
  3 comentarios
Mark Tiede
Mark Tiede el 20 de Abr. de 2020
Did you check file encoding? What works for me under Windows is UTF-8 (EOL either \r\n or \n).
Are Mjaavatten
Are Mjaavatten el 20 de Abr. de 2020
Encoding is UTF-8 and EOL is \n.

Iniciar sesión para comentar.

Categorías

Más información sobre Downloads 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