最佳实践与流过传递多个共享参数

3视图(30天)
这是有点一般但特定于MATLAB编程。我有一堆的功能除了少数例外包括必需的参数和1或更多的“参数”,“价值”对采用变长度输入宗量,inputParser addRequired, addParameter。碰巧,代码气球现在我必须处理大量的冗余代码和低效的调试。
例如我有函数“fA”将向量或矩阵v1和v2输出一些默认的计算,但我可以覆盖其中的一些参数。同样我有函数“facebook”,它与不同的参数去v2 - - > v3。所以这些工作:
fA (1:5)
fA ([1 9;4 5],“乘数”,2)
fB (7 9 [3])
fB ([3 7 9],“OutputAsInteger”,真的,“指数”,1)
但是,我也实现方便包装fC,直接从v1 - - > v3。事情变得太复杂,之前我有它解析所有3输入,但是大部分通过他们通过变长度输入宗量提供或违约{:}。这需要我来编辑fA接受两个参数和fB接受“广场”。我使用解析器的转向 KeepUnmatched = true 财产和传递,因此避免了崩溃更好,但仍很难调试任何更改。
是什么最好的方式来处理这种在这三个功能,并扩展到几十个类似的功能?我想我可以工作一般结构()对象,传递给每一个函数只接受他们所需要的值,但这是最好的方法吗?
3评论
杰夫•米勒
杰夫•米勒 2022年6月24日
高兴是有帮助的。注意这种方法有点出错在没有警告或错误如果你叫fC与非法参数(例如,你mis-spell的名称在一个名称/值对被足总或facebook)。

登录置评。

答案(0)

类别

找到更多的在参数定义帮助中心文件交换

s manbetx 845


释放

R2021b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的