首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义自定义Mupad过程的一般相对搜索路径

定义自定义Mupad过程的一般相对搜索路径
EN

Stack Overflow用户
提问于 2015-08-03 11:33:37
回答 1查看 93关注 0票数 3

想象一下,我在path 'C:\projectFolder\ABC\abc\'的路上有一个mupad笔记本电脑'C:\projectFolder\ABC\abc\'。它调用位于MyMupadProcedure.mu的过程'C:\DEF\GHI\'

现在我有了一个Matlab脚本main.m at 'C:\projectFolder\XYZ\xyz\',它的内容如下:

代码语言:javascript
复制
nb = mupad('C:\projectFolder\ABC\abc\myMupadNotebook.mn');
status = evaluateMuPADNotebook(nb);

因此,它初始化一个符号引擎并执行Mupad脚本。但是Mupad脚本需要知道在哪里可以找到这个过程。因此,我可以在带有文件->Properties->启动命令的Mupad中定义一些启动命令(或启动脚本),如下所示:

代码语言:javascript
复制
READPATH := "C:\DEF\GHI\";
read("MyMupadProcedure.mu");

但是现在我在不同的机器上工作,绝对文件夹路径是不同的,但是相对路径是相同的。如何在所有机器上使用我的脚本?

在Matlab中,我只是在每台机器上设置了SearchPath,它可以工作,对Mupad来说有什么等价的东西吗?

或者,如果我可以将一个字符串从Matlab传递给Mupad,并且我只需在我的笔记本标题中编写启动命令,并使用Matlab函数确定相对路径,就会有帮助。但是,以下所有行的组合都不能工作:

代码语言:javascript
复制
syms X
X = 'hello'
setVar(nb,'X',X)
evalin(nb,['X := "' X '"']) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 13:59:19

可以认为MuPad与Matlab的集成要好得多。

除了符号表达式( MuPad )之外,从Matlab到MuPad的变量和字符串的直接传输似乎是不可能的。如果我错了就纠正我。然而,在Matlab中用相对路径编写文件和用相对路径在MuPad中读取文件是可能的。

通过这种方式,可以将存储MuPad过程的路径写入位于同一个文件夹中的textfile,其中执行MuPad笔记本:

代码语言:javascript
复制
%// determined with pwd, cd and string manipulation etc
MuPadNotebookPath = 'C:\projectFolder\ABC\abc\' 
MuPadProceduresPath = 'C:\DEF\GHI\';    

fid = fopen( [MuPadNotebookPath  '\parameters.txt'], 'w'); 
fprintf(fid,'%s\r\n%', strrep(MuPadProceduresPath ,'\','\\')); %'
fclose(fid);

现在,在parameters.txt中将有一个文件'C:\projectFolder\ABC\abc\'

parameters.txtmyMupadNotebook.mn.中,环境变量 NOTEBOOKPATH可以用于获取目录。

然后可以使用ftextinput从文本文件读取路径'C:\DEF\GHI\'。最后,可以设置READPATH

代码语言:javascript
复制
cfgfile := NOTEBOOKPATH . "parameters.txt":
rpath = ftextinput(cfgfile, rpath):
READPATH := rpath:
read("MyMupadProcedure.mu");

总的来说,看上去如下:

代码语言:javascript
复制
nb = mupad(MuPadNotebookPath);
fid = fopen( [MuPadNotebookPath  '\parameters.txt'], 'w'); 
fprintf(fid,'%s\r\n%', strrep(MuPadProceduresPath ,'\','\\')); %'
fclose(fid);
status = evaluateMuPADNotebook(nb);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31786164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档