2

我有一个函数,它接受一个维度为 [1,2] 的矩阵并返回一个维度为 [1,136] 的矩阵。我还有一个维度矩阵 [N,2]。我想将此函数应用于矩阵的每一行,最终得到一个维度为 [N,136] 的矩阵。

我完全不知道如何在 Matlab 中做到这一点。一个 for 循环解决方案就足够了(此时我什至不能这样做),但据我所知,在 Matlab 中有更好和更可并行化的做事方式。

我目前的尝试如下所示:

  phi = arrayfun(@(x,y) gaussianBasis([x y])' , trainIn(:,1), trainIn(:,2), 'UniformOutput', false);

其中gaussianBasis是返回向量 [136,1] 的函数,trainIn是矩阵 [N,2]。phi应该是 [N,136],但这会返回一个由 N 个元胞数组组成的数组,每个元胞数组都包含一个矩阵 [1,136]。

感谢所有的帮助!

4

1 回答 1

4

您只需要cat沿第一个维度使用并连接它:

phi = cat(1, phi{:})

这应该给你一个 N x 136 矩阵

于 2012-11-07T01:12:17.503 回答