3D matrix time 2D matrix
1 view (last 30 days)
Show older comments
I need to do the following and I am wondering if they can be done in a much simple and efficient way.
s = size(relu);
M = s(1) * s(2);
N = s(3);
delta = single(zeros(s));
for i = 1 : s(1)
for j = 1 : s(2)
for k = 1 : s (3)
if relu(i, j, k) > 0
delta(i, j, k) = reshape(relu(i, j, :), [1, s(3)]) * gamma(:, k) / M / M / N / N;
else
delta(i, j, k) = 0;
end
end
end
end
0 Comments
Accepted Answer
Andrei Bobrov
on 13 Sep 2016
Edited: Andrei Bobrov
on 13 Sep 2016
Let your gamma -> gamma1 (because gamma - name of the function from MATLAB)
s = size(relu);
M = s(1) * s(2);
N = s(3);
r1 = reshape(relu,[],s(3));
delta1 = reshape(r1*gamma1,s).*(relu > 0)/(M*N)^2;
More Answers (0)
See Also
Categories
Find more on Gamma Functions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!