Multiply each 3D gpuArray page column with each other

1 次查看(过去 30 天)
Hello to All, Can anyone give advice on the following matter? Lets say I have 3D gpuArray a (XxYxZ) with random numbers, I need to multiply every column of each page with other columns. A dumb version would look something like this:
D=pagefun(@times,a(:,1,:),a(:,1:end,:));
As you can see here only first column would be multiplied with others, but I need all columns. And yes I understand that this code does not work, it is just an example of what I am trying to achieve. Multiply each 3D gpuArray page column with each other

采纳的回答

Joss Knight
Joss Knight 2018-7-12
It's hard to be sure whether you are literally after what you wrote, or whether you have just articulated it wrong. If you literally just want to multiply every column of a by every other column, then you don't need pagefun, because this is an element-wise operation. You can just use scalar dimension expansion.
[r, c, p] = size(a);
D = reshape(a, r, 1, c, p) .* reshape(a, r, c, 1, p);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Parallel Computing Fundamentals 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by