引言
今天遇到这样的一个需求,使用java调用.m文件,但是调用的时候没有参数,.m文件中的脚本使用的参数是以数据文件的形式传递的,并且这个.m调用的父层文件夹的位置是根据客户安装软件的位置来设定的,在.m脚本文件中是无法得到父层目录文件的绝对路径位置的,所以只能用相对路径进行读取。例如在.m文件同级目录下有个data.txt作为它的输入数据文件,在这里我使用的是“fopen(filename,‘r’)”方法进行读取的,但是在Matlab上运行.m文件是可以读到的,只有java调用的时候读不到。所以我们要更改当前活动目录路径。
更改当前活动目录
fullpath = mfilename('fullpath');
[path,name]=fileparts(fullpath);
%得到的path变量就是当前.m文件所在的目录,name是.m文件的名称(不带.m后缀)。
cd(path);%更改当前活动目录路径
addpath(path);
res = savepath;
读文件
file = '.\data.txt';
fidin = fopen(file,'r');