Matlab GPU使用带有不同维度参数的函数

时间:2015-09-08 12:34:21

标签: matlab parallel-processing gpu

我正在尝试在Matlab中使用GPU进行并行计算,我想将一个函数应用于一个大型数组(以避免使用for循环,这非常慢)。我已经阅读了Matlab的文档,我可以使用arrayfun,但前提是我想进行元素操作。也许我很困惑,但如果有人能帮助我使用它,我将不胜感激。作为我想做的一个例子,想象一下我想执行以下操作,

$ X_t = B Z_t + Q \ varepsilon_t $

其中$ X_t $是2x1,$ B $是2x5,$ Z_t $是5x1,$ Q $ 2x2。我定义了一个函数,

function X = propose(Z,B,Q)
X=Z*B+Q*rand(2,1);
end

现在,假设我有一个数组$ Z_p $,即5x1000。对于给定矩阵$ B $和$ Q $,我希望对1000列中的每一列应用前一个函数来获得一个数组$ X_p $,即2x1000。

鉴于arrayfun的文档,我不能这样做,

X=arrayfun(@propose,Zp,B,Q)

那么,有没有可能做到这一点?

谢谢!

PS :是的,我知道在这个简单的例子中,我可以在没有for循环的情况下进行乘法,但我想到的应用程序更复杂,我无法做到。我只是把这个例子作为例子。

0 个答案:

没有答案