Matlab 的 private 文件夹

matlab用多了,发现在代码开发环境方面还真不如VS做的好,而且在项目管理上做的不如其他语言强大,开发小型代码很不错,如果代码工程量大的话,就会发现很难组织好。一个文件里面,第一个函数是主函数,后面的函数对外都不可见,这个就很别扭,所以要把其他需要供其他文件调用的函数都写成一个个文件,文件少了还好,如果多了,就想分分类,怎么分?要知道一个函数或脚本是无法或不方便调用其他文件夹里的函数的,加入matlab路径倒是个方法,但是matlab路径已经够多了,你加进去,过一阵,就不知道哪个是哪个了,不爽啊。而且如果想拷给别人用的话,还得时刻记得加路径。。。

可能也是对matlab项目了解的不多吧,最近也确实看到一些matlab项目的管理方法,比如使用private文件夹、@开头的文件夹、+开头的文件夹等,这些为项目管理提供了一些不错的想法,不过还是感觉不如c的好啊。

 

先来说一说private文件夹吧。

private函数是matlab软件中广泛使用的一种技术,其作用是限定某一些函数(private文件夹内)只能被令一些函数(private文件夹所在文件夹中的函数)使用,其他函数不能使用,这样的话就可以避免一些问题(因为一般的matlab函数是全局可见的,而private函数只能被private文件夹所在文件夹中的函数调用)。具体可以查看matlab帮助中有关Private Functions的介绍。下面做一下简单翻译吧,顺便练习一下英语吧。

 

private函数是那些放在以private子文件夹下的函数。这些函数被称为private是因为它们只对满足如下条件的函数或脚本可见:

1.函数要满足它被定义的文件在private文件夹的上一级目录;

2.脚本要满足它被满足条件1的函数调用,才能在其中使用private函数。

 

例如,假设文件夹newmath在matlab的搜索路径下(不在也可以),那么newmath文件夹下名字为private的文件夹中所包含的函数只可以被newmath文件夹下的函数调用。

由于private函数对父文件夹外不可见,所以它们能使用与其他文件夹中函数相同的名字。这对下面的情况是很有用的,如果你想创建你自己版本的函数,只需要把原始的函数放在其他文件夹下。因为matlab是在找标准函数之前找private函数的。

 

举个例子,创建如下文件

image

各文件内容如下

privatefunc.m:

function privatefunc
disp('privatefunc is called!')
end

 

scripttest.m:

disp('scripttest call privatefunc in private folder:')
privatefunc

 

functiontest.m:

function  functiontest
disp('functiontest call privatefunc in private folder:')
privatefunc

scripttest
end

 

运行scripttest,结果如下

scripttest call privatefunc in private folder:
??? Undefined function or variable 'privatefunc'.

Error in ==> scripttest at 2
privatefunc

 

运行functiontest,结果如下

functiontest call privatefunc in private folder:
privatefunc is called!
scripttest call privatefunc in private folder:
privatefunc is called!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值