当前位置: 首页 > 面试题库 >

Matlab脚本编辑

郑俊美
2023-03-14
问题内容

我想在两种情况下编辑Matlab脚本

(1)在Linux终端上运行的matlab命令窗口中,如何创建和编辑脚本文件?采用

edit(filename)

将调用交互式编辑器,这在Linux服务器上运行时是不希望的。

(2)在emacs中,有什么方法可以方便地编辑matlab脚本?使用MATLAB-Emacs或EmacsLink哪个更好?

当我尝试从http://sourceforge.net/scm/?type=cvs&group_id=154105
cvs签出MATLAB-Emacs时,应指定哪个模块名?

谢谢!

编辑:

安装MATLAB-emacs时,存在一些问题。我以为我的CEDET安装在这里:

/usr/share/emacs22/site-lisp/cedet-common   
/usr/share/emacs22/site-lisp/cedet-contrib

我的CEDET在Ubuntu上的版本为1:1.0pre4-3(intrepid)。所以我输入命令:

$ make "LOADPATH=/usr/share/doc/cedet-common /usr/share/doc/cedet-contrib"    
 for loadpath in . /usr/share/doc/cedet-common /usr/share/doc/cedet-contrib; do \    
       echo "(add-to-list 'load-path \"$loadpath\")" >> autoloads-compile-script; \    
    done;    
 "emacs" -batch --no-site-file -l autoloads-compile-script -f cedet-batch-update-autoloads matlab-load.el .    
 Generatim autoloads for cedet-matlab.el...    
 Generatim autoloads for cedet-matlab.el...done    
 Generatim autoloads for matlab.el...    
 Generatim autoloads for matlab.el...done    
 Generatim autoloads for mlint.el...    
 Generatim autoloads for mlint.el...done    
 Generatim autoloads for semantic-matlab.el...    
 Generatim autoloads for semantic-matlab.el...done    
 Generatim autoloads for tlc.el...    
 Generatim autoloads for tlc.el...done    
 Generatim autoloads for semanticdb-matlab.el...    
 Generatim autoloads for semanticdb-matlab.el...done    
 Updatim header...    
 Updatim header...done    
 Wrote /home/tim/.emacs.d/matlab-emacs/matlab-load.el    
 make: *** No rule to make target `matlab-publish.el', needed by `lisp'.  Stop.

怎么了?谢谢!


问题答案:

您应该意识到,从版本R2009a开始,EmacsLink已从Matlab中删除,因此我想说,此时Matlab-
Emacs是更好的选择。EmacsLink的主要优势是更紧密,并且与Matlab集成在一起,尤其是在使用调试器时,但是当前版本的Matlab-
Emacs相当强大,并且可能会像EmacsLink一样满足大多数人的需求。

为了从Matlab调用Emacs,最干净的解决方案是运行Emacs服务器(Mx服务器启动)。然后可以设置edit()命令以在Emacs中打开脚本。此处提供了有关如何执行此操作以及将matlab-
shell作为劣质程序运行的详细说明:

http://blogs.mathworks.com/desktop/2009/09/14/matlab-emacs-integration-is-
back/

关于CVS签出:模块名称为“ matlab-emacs”。您曾经能够下载档案,然后只需将其解压缩到elisp目录中即可。

编辑:我决定重新安装matlab-emacs;
这是我所做的逐步操作。(这些步骤非常明显,但是,如果很容易遇到编译错误或误解某些指令,这可能仍然有用)。请注意,直到我重新安装CEDET,matlab-
emacs才编译。

从http://cedet.sourceforge.net/下载CEDET
(以我的情况为1.0pre7)将存档解压缩到〜/ .emacs.d / elisp /(现在有〜/ .emacs.d / elisp /
cedet-1.0pre7 /目录)通过make EMACS=/usr/bin/emacs 〜/ .emacs.d / elisp中的while
编译CEDET ,执行cvs checkout:

cvs -z3 -d:pserver:anonymous@matlab-emacs.cvs.sourceforge.net:/cvsroot/matlab-emacs co -P matlab-emacs

通过编译matlab-emacs

make "LOADPATH=../cedet-1.0pre7/common ../cedet-1.0pre7/eieio ../cedet-1.0pre7/semantic/bovine/ ../cedet-1.0pre7/semantic/"

理想情况下,所有内容都应编译;现在是时候编辑启动文件了:在.emacs中添加

(setq load-path (cons "~/.emacs.d/elisp/matlab-emacs/" load-path))
(load-library "matlab-load")

并在matlab的startup.m中添加

addpath('~/.emacs.d/elisp/matlab-emacs/toolbox','-begin');
rehash;
emacsinit;

那应该做!启动emacs,然后执行Mx matlab-shell。如果edit foo.m没有在emacs中打开foo.m,请确保服务器已启动(Mx
server-start)。

为了提高生产力,您可能希望找出从编辑缓冲区向Matlab进程发送命令方面最适合您的方法(使用模式帮助中的快捷方式进行实验)。最后,如果您需要调试东西,请执行do
dbstop in foo,并且在运行foo时,可以使用dbstop系列命令(查找它们),也可以打开工具栏(Mx工具栏模式)并使用那里的按钮来控制断点,步进,继续等。完成后,键入dbquit。

不幸的是,如果您使用的是Windows,则不能选择使用matlab-shell(这有点令人惊讶,看到我如何从命令行在阳光下运行几乎所有其他东西-
Mathematica,R,numpy …)- -因此,您无法进行紧密的emacs /
matlab集成选择(除非您不介意运行支持emacslink的旧版matlab)。



 类似资料:
  • 主要内容:M文件,创建和运行脚本文件到目前为止,我们都是使用MATLAB环境作为计算器。然而,MATLAB也是一种强大的编程语言,也是一个交互式的计算环境。 在前几章中,已经学习了如何从MATLAB命令提示符输入命令。MATLAB还允许将一系列命令写入文件,并将文件作为完整单元执行,如:编写函数并调用它。 M文件 MATLAB允许编写两种程序文件 - 脚本 - 脚本文件是以扩展名的程序文件。在这些文件中,可以编写一系列要一起执行的命

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 编写HTTP/1.1和HTTP/2.0脚本 有时,我们希望编写一个快速的脚本而不会遇到创建类的麻烦。addons机制具有一种速记方式,可以将模块作为一个整体视为一个addon对象。这使我们可以将事件处理程序函数放在模块作用域中。例如,下面是一个完整的脚本,它向每个请求添加标头。 def request(flow): flow.request.headers["myheader"] = "v

  • 当 Gradle 执行一个脚本时,它会将这个脚本编译为实现了 Script 的类. 也就是说所有的属性和方法都是在 Script 接口中声明的,由于你的脚本实现了 Script 接口,所以你可以在自己的脚本中使用它们.