我想使用 MATLAB 将函数应用于矩阵中的所有列。例如,我希望能够在矩阵的每一列上调用 smooth ,而不是让 smooth 将矩阵视为向量(如果调用 ,这是默认行为smooth(matrix)
)。
我确信必须有一种更惯用的方法来做到这一点,但我找不到它,所以我定义了一个map_column
函数:
function result = map_column(m, func)
result = m;
for col = 1:size(m,2)
result(:,col) = func(m(:,col));
end
end
我可以打电话给:
smoothed = map_column(input, @(c) (smooth(c, 9)));
这段代码有什么问题吗?我该如何改进它?