DimFunc为尚未处理维度参数的函数提供类似sum(X, dim)的行为。
该函数只需要处理向量(或2d矩阵,如果更快的话),并可能返回向量输出。输出的大小与输入的大小相匹配,除非选择的维度更改以匹配函数输出的长度(通常,但不一定是1)。
用法:
Out = dimfunc(func, data, dim, out_length, handles_matrix)
输入:
Func—要应用的函数句柄(或函数名字符串)
数据输入数组,具有任意维数和大小
暗维度操作,默认为第一个非单维度
可选的输入:
Out_length——func的向量输出长度(默认值:1)
handles_matrix -布尔标志,如果为真,假设func将操作矩阵输入的列(默认:false)
例子:
V = randn(10,10,3);%一个10x10的随机3向量数组
N =√(sum(v)。^ 2,3));%一个10x10的矩阵的他们的规范
N = dimfunc('norm', v, 3);与n相同,但可能更清楚。
注意,规范不允许sum所允许的“模糊行为”;在这种情况下,直接使用sum很容易,但对于其他函数可能没有简单的替代方法。我希望dimfunc将使其他人编写函数稍微容易一些,因为它消除了对n-D数组的担忧,而只是处理1或2-d输入。
引用作为
Ged Ridgway(2022)。DimFunc(//www.tatmou.com/matlabcentral/fileexchange/28255-dimfunc), MATLAB中央文件交换。检索.