我经常需要在 matlab 中生成任意离散分布。我可以这样写:
randDiscreteDistribution = rand(sizeOfDistribution, 1);
randDiscreteDistribution = randDiscreteDistribution / sum(randDiscreteDistribution);
尽管我想避免在任何地方都写这两行,但封装此功能将使软件更简洁。出于源代码控制的原因,我想避免编写一个完整的函数,我需要在多个存储库中使用它,它当然不值得拥有自己的子模块!
理想情况下,我想要一个类似于匿名函数的解决方案(本地函数已被淘汰,因为它们不允许在脚本中使用),尽管每次我需要它时我宁愿使用这两条丑陋的线,而不是破解一些执行速度有点慢:(http://www.mathworks.com/matlabcentral/answers/50195-is-it-possible-to-write-several-statements-into-an-anonymous-function)。