DimFunc

版本 1.0.0.0 (2.3 KB) 作者: Ged Ridgway
Apply a function along any dimension of an n-D array.
563.0 次下载
更新时间 2010/7/21

查看许可证

DimFunc provides behaviour like sum(X, dim) for functions that don't already handle dimension arguments.

The function need only handle vectors (or 2d matrices, if faster) and may return vector output. The size of the output matches that of the input, except that the chosen dimension changes to match the length of the output of the function (often, but not necessarily, 1).

Usage:
out = dimfunc(func, data, dim, out_length, handles_matrix)
Input:
func - function handle (or function name string) to apply
data - input array, of arbitrary dimensionality and size
dim - dimension to operate along, defaulting to first non-singleton dimension
Optional inputs:
out_length - length of vector output from func (default: 1)
handles_matrix - Boolean flag, if true, assume func will operate on columns of a matrix input (default: false)

Example:
v = randn(10,10,3); % a 10x10 array of random 3-vectors
n = sqrt(sum(v.^2, 3)); % a 10x10 matrix of their norms
N = dimfunc('norm', v, 3); % the same as n, but perhaps clearer

Note that norm does not allow the "dim behaviour" that sum does; in this case, it is easy enough to use sum directly, but for other functions there might be no simple alternatives. I hope that dimfunc will make it slightly easier for others to write functions by removing the need to worry about n-D arrays, instead just handling either 1 or 2-d inputs.

引用格式

Ged Ridgway (2024). DimFunc (https://www.mathworks.com/matlabcentral/fileexchange/28255-dimfunc), MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R14SP3
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Elementary Math 的更多信息
致谢

参考作品: reshape2matrix.m v1.0 (Oct 2009)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
1.0.0.0