安装完matlab2014后,试着配置notebook
>> notebook -setup
Error using notebook>stopEverythingIfBadRegistry (line 76)
Word not properly installed: winword.exe not found
Error in notebook (line 26)
[wordPath, templatePath] = stopEverythingIfBadRegistry;
但是显示如下错误,开始以为是Matlab安装的问题。
搜索没有找到结果, 仔细查看了Matlab中关于notebook的配置,发现所谓的安装不过是将一个叫m-book.dot的模板文件拷贝到WORD存放模板目录的过程。而其中第一部是Matlab找到系统安装WORD的路径,上面出错一般是在第一步出错。既然这样,直接跳过第一步进行拷贝就行了
(1)在MATLAB安装目录下,找到一个叫m-book.dot的文件;
(2)找到WORD模板目录,一般是在C:\Users\Administrator\AppData\Roaming\Microsoft\Templates下,拷贝过去即可。
notebook怎么样用呢?首先搞清楚它是干什么的,看官方解释:
notebook Open MATLAB Notebook in Microsoft Word (on Microsoft Windows platforms)
notebook, by itself, launches Microsoft Word and creates a new MATLAB
notebook called "Document 1."
实际上是创建一个Word文档,这个文档除了具备word文档属性,还可以利用matlab的数据理解能力和计算能力,简单来说可以在word中运行一些matlab命令,这对于做word课件是不错的选择(强烈建议用word来做matlab的课件,理由懂的自然懂,不解释)。
运行方式:
(1)matlab中输入notebook;(我的系统下不成功)
(2)直接运行word,新建一个文档,但是用的模板就是上面安装的m-book.dot
但是这一种方法在我的电脑上出错了,显示错误如下:
看来是64位不兼容问题,搜索一下,答案如下:
添加PtrSafe属性,将:
Private Declare Function WinHelp Lib "USER32.DLL" Alias "WinHelpA" (ByVal hWnd As Integer, ByVal lpHelpFile _
As String, ByVal wCmd As Integer, ByVal dwData As String) As Integer
Private Declare Function GetActiveWindow Lib "USER32.DLL" () As Integer
改为:
Private Declare PtrSafe Function WinHelp Lib "USER32.DLL" Alias "WinHelpA" (ByVal hWnd As Integer, ByVal lpHelpFile _
As String, ByVal wCmd As Integer, ByVal dwData As String) As Integer
Private Declare PtrSafe Function GetActiveWindow Lib "USER32.DLL" () As Integer
PtrSafe Function GetActiveWindow Lib "USER32.DLL" () As Integer
就是在弹出的宏里面加上一个ptrsafe即可。
大功告成,感谢百度大神!