Help text does not work for user-defined functions

조회 수: 7 (최근 30일)
Are Mjaavatten
Are Mjaavatten 2020년 1월 18일
편집: Matt J 2020년 6월 29일
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
Are Mjaavatten
Are Mjaavatten 2020년 1월 21일
편집: Are Mjaavatten 2020년 1월 21일
>> 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 2020년 3월 20일
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?

댓글을 달려면 로그인하십시오.

채택된 답변

Are Mjaavatten
Are Mjaavatten 2020년 5월 26일
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
Matt J
Matt J 2020년 6월 29일
편집: Matt J 2020년 6월 29일
Aaarggh. That worked for me, too. They really should use builtins or private/ Mcode for such essential commands.
Good catch.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Mark Tiede
Mark Tiede 2020년 4월 19일
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
Mark Tiede
Mark Tiede 2020년 4월 20일
Did you check file encoding? What works for me under Windows is UTF-8 (EOL either \r\n or \n).
Are Mjaavatten
Are Mjaavatten 2020년 4월 20일
Encoding is UTF-8 and EOL is \n.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Install Products에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by