win10 64位下,MATLAB配置notebook不成功问题

安装完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

但是这一种方法在我的电脑上出错了,显示错误如下:

win10 64位下,MATLAB配置notebook不成功问题_第1张图片

看来是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即可。


大功告成,感谢百度大神!


你可能感兴趣的:(小问题/FAQ,matlab,notebook)