Как показать локальную документацию Matlab в системном браузере при нажатии клавиши F1?
Я использую Windows7 и Matlab R2013a на моем ПК. Я считаю невозможным копировать / вставлять в окно справки или справки браузера Matlab:
поэтому я нажимаю Получить адрес страницы и копирую команду:web([docroot '/matlab/ref/plot.html'])
и добавить аргумент '-browser'
чтобы показать локальный файл документа в моем системном браузере:
>> web([docroot '/matlab/ref/plot.html'], '-browser')
но это довольно хлопотно! Так есть ли способ удобно показать локальный файл документации в моем системном браузере, когда я нажимаю F1? Спасибо заранее;)
1 ответ
Я боролся с этим вопросом и думаю, что, возможно, нашел то, что вы ищете. Вы можете добиться следующего, создав ярлык в MATLAB и написав там код. Пометьте его именем, которое вы хотите, и затем вы можете запустить его, просто нажав на него.
Что касается кода, я должен сказать, что я использовал нетрадиционные, но очень эффективные стратегии, и я тестировал их только в Windows, но вы могли бы сделать это и в системах Unix, изменив конкретную реализацию.
Предложите пользователю ввести желаемую документацию:
helpdoc=input('Input the doc file: ','s');
Затем выполните системную команду (DIR), чтобы найти файл.html, который используется в документации Matlab. Поскольку каталог документации по умолчанию доступен из функции docroot, можно получить строку, которая должна быть передана системной функции в Matlab, объединяя команду dir следующим образом:
DirCmd=['dir /s /b "',docroot,'\',helpdoc,'html'];
Параметры /s /b используются для поиска файла.html во всех подкаталогах docroot и для отображения чистого содержимого (полного пути файла). Вы можете получить больше информации здесь: https://isc.sans.edu/diary/Finding+Files+and+Counting+Lines+at+the+Windows+Command+Prompt/2244
[Status,CmdOut]=system(DirCmd);
Выпущенный системный вывод команды присваивается массиву символов. Для совпадений с множеством необходимо отфильтровать этот массив и разделить его на отдельные пути. Для этого можно использовать функцию REGEXP с опцией расщепления.
Paths=regexp(CmdOut,'.html','split')
Это вернет массив ячеек с цифрой = цифра (строки)+1 (дополнительная ячейка представлена с нулевым содержимым) без разделительного члена. Поэтому теперь я должен объединить его с разделительным термином и открыть его в системном браузере.
for ii=1:numel(Paths)-1;
DocWeb=[Paths{ii},'.html'];
web(DocWeb,'-browser');
end
Я проверил это в поисках документации в документации, и на моем компьютере QuadCore 16 ГБ ОЗУ потребовалось 0,7266 с, чтобы отобразить две веб-страницы в моем системном браузере (Chrome), касающиеся документов и документов для символической математической панели инструментов.
Надеюсь, это поможет, слава.