【发布时间】:2016-12-06 13:03:36
【问题描述】:
我有一个 Matlab 函数,它以一个矩阵和一个 chunk_size 作为输入,将其重塑为 chunk_size 维度的块。
例如,如果我有以下矩阵:
data=
1 3
2 5
3 42
4 35
5 16
6 48
7 2
8 22
9 20
10 39
11 40
函数,使用 3 的 chunk_size 将输出:
data(:,:,1) =
1 3
2 5
3 42
data(:,:,2) =
4 35
5 16
6 48
data(:,:,3) =
7 2
8 22
9 20
原始数据的最后一行被丢弃,因为它们不完全适合一个块。
我现在可以让 用户 通过函数参数指定一个函数以应用于 3D 矩阵的每个切片。 所以,例如,如果用户想对元素求和,他可以使用matlab提供的sum函数来获得:
data(:,:,1) =
6 50
data(:,:,2) =
15 99
data(:,:,3) =
24 44
同时,我想例如让用户让他在另一个维度上应用求和函数,以获得:
data(:,:,1) =
4
7
45
data(:,:,2) =
39
21
54
data(:,:,3) =
9
30
29
我觉得所有这些都可以通过匿名函数或类似的东西以某种方式获得,但我不知道如何。
任何帮助将不胜感激。
谢谢
【问题讨论】:
标签: matlab matrix lambda anonymous-function