我有一个函数接受维度[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]。
感谢您的帮助!
答案 0 :(得分:4)
您只需要使用cat
并将其连接到第一维:
phi = cat(1, phi{:})
这应该给你一个N x 136矩阵