【发布时间】:2016-03-23 11:27:59
【问题描述】:
如何告诉/导出/复制当前正在运行的M文件到一个目录。 我知道复制命令,只是不确定如何获取当前正在运行的 M 文件。
这样做的原因是我尝试了相同的 M 文件和不同的编辑,从而创建了不同的输出文件。我想将 M 文件的更改与它创建的导出文件一起保存。
谢谢
PS:我使用的是 octave 3.8.1,类似于 matlab
【问题讨论】:
如何告诉/导出/复制当前正在运行的M文件到一个目录。 我知道复制命令,只是不确定如何获取当前正在运行的 M 文件。
这样做的原因是我尝试了相同的 M 文件和不同的编辑,从而创建了不同的输出文件。我想将 M 文件的更改与它创建的导出文件一起保存。
谢谢
PS:我使用的是 octave 3.8.1,类似于 matlab
【问题讨论】:
使用 mfilename
p = mfilename('fullpath')
fullpath 选项返回完整路径,它直接允许您将其与复制命令一起使用。
【讨论】:
Daniel 的解决方案回答了您的直接问题,但也许有更好的方法来组织您的工作流程。
也许除了创建输出文件之外,您还可以在输出旁边导出一个“参数”文件,其中描述了重新创建实验所需的所有参数。这可以像调用 save 来创建一个包含必要变量的 MAT 文件一样简单......只是一个想法 :)
【讨论】:
我的建议是在任何可以使用 M 文件调用 octave 的 shell 中编写一个脚本,您还可以在其中复制 M 文件和输出。
https://www.gnu.org/software/octave/doc/interpreter/Command-Line-Options.html
【讨论】:
谢谢丹尼尔
此代码可能会帮助需要执行此操作的其他人
currentfile=strcat(mfilename('fullpath'),'.m') %current file being run with path
[pathstr,name,ext] = fileparts(currentfile) % split into parts
currentfilecpyto=strcat('/tmp/A_',name,ext) %where to copy file to
copyfile(currentfile, currentfilecpyto) %copy file
【讨论】: