Help text does not work for user-defined functions

15 visualizzazioni (ultimi 30 giorni)
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 Commenti
Are Mjaavatten
Are Mjaavatten il 21 Gen 2020
Modificato: Are Mjaavatten il 21 Gen 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 il 20 Mar 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?

Accedi per commentare.

Risposta accettata

Are Mjaavatten
Are Mjaavatten il 26 Mag 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 Commento
Matt J
Matt J il 29 Giu 2020
Modificato: Matt J il 29 Giu 2020
Aaarggh. That worked for me, too. They really should use builtins or private/ Mcode for such essential commands.
Good catch.

Accedi per commentare.

Più risposte (1)

Mark Tiede
Mark Tiede il 19 Apr 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 Commenti
Mark Tiede
Mark Tiede il 20 Apr 2020
Did you check file encoding? What works for me under Windows is UTF-8 (EOL either \r\n or \n).

Accedi per commentare.

Categorie

Scopri di più su Downloads in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by