leeking30 发表于 2008-11-19 23:07

问一个关于函数路径的问题

有几组数据存在不同的文件夹里,处理这几组数据需要调用自己写的一个函数,问题是是不是只能把函数 分别复制到这几个文件夹里,才行啊,我想讲m文件单独放一起,不和数据文件混一起,有没有个好的办法? 其实问题实质就是工作路径只能是1个如果函数不在工作路径,那么就不能调用这个函数, 但是如果要将函数一个个复制进这些数据文件夹里的话,由于数据文件夹太多,太费时间!
感觉说的不清楚,下面演示下;
假设几个数据文件分别在 /matlab/work/data1,   /matlab/work/data2,   /matlab/work/data3,
    M文件(包括函数) 在          /matlab/work/Mfile
如何写个语句,既照顾到matlab/work/Mfile ,又能调用/matlab/work/data1

ChaChing 发表于 2008-11-20 08:04

不太确定你的问题
doc uigetfile或file>set path

zhoulon 发表于 2008-11-20 08:51

也是是设置工作路径,两外一个就是放到工作目录下面。

leeking30 发表于 2008-11-26 18:15

算了 不深究了 就挨个复制进去吧

ch_j1985 发表于 2008-11-26 20:00

回复 地板 leeking30 的帖子

先读取数据再调用函数?

leeking30 发表于 2008-11-27 18:37

先读取数据再调用函数
就是说先将工作路径设定到数据路径,读取数据后,再将工作路劲该回到函数所在路径!
我怎么就没想到呢?:victory: :victory: :victory: :handshake :handshake

ChaChing 发表于 2008-11-27 20:49

1.我的习惯会将自行开发的程序分类别放在不同目录里, 再将这些目录设定在path里, 如此在任何工作目录下皆可执行該程序, 有点像toolbox一样!
2.程序一般常需要资料输入, 若写死, 程序不够一般化, 所以我的习惯会使用uigetfile, 如此资料在不同目录里亦可执行, ex
while 1, TitleS = 'Choise the file for data processing (Cancel to Quit from Data Process) :';
    = uigetfile('*.*',TitleS);
   if FileName==0, disp(); break;   else cd(PathName); end
    ....
    ....
end

总之, 工作目录与函数目录/资料目录可以完全无关, 如此程序才够一般化, 希望我有说清楚

[ 本帖最后由 ChaChing 于 2008-11-27 20:55 编辑 ]

wangyi_elite 发表于 2008-11-27 23:51

M脚本文件中首先可以把其他路径的数据调入,然后下面有关的函数和脚本放在同一个工作文件夹就可以了啊

ChaChing 发表于 2008-11-28 08:32

原帖由 wangyi_elite 于 2008-11-27 23:51 发表 http://www.chinavib.com/forum/images/common/back.gif
M脚本文件中首先可以把其他路径的数据调入,然后下面有关的函数和脚本放在同一个工作文件夹就可以了啊
当然是可以, 但资料档案若更换, M-function/M-script就需要重改, 不太好吧? 所以个人认为这样不够一般化!
页: [1]
查看完整版本: 问一个关于函数路径的问题