MATLAB を使用して、行列のすべての列に関数を適用したいと考えています。たとえば、スムーズに行列をベクトルとして扱うのではなく、行列のすべての列でスムーズを呼び出せるようにしたいと思います (これは、を呼び出す場合のデフォルトの動作です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)));
このコードに何か問題がありますか? どうすれば改善できますか?