MATLAB: Alternative form for find(max(x))

loopsMATLAB

Hi all!
I am trying to optimize my program by reducing the nested coding and perhaps "slow" functions such as find().
I have this:
gamma = 0.5
nodes = 5
if rand >= gamma
a = find(A(s(1),s(2),:) == max(A(s(1),s(2),:)),1);
else
a = randi(nodes);
end
A is a n x m x o matrix.
I was wondering if there's a different way to tackle this. I've looked at accum() but I don't seem to make it work properly. Thank you in advance!

Best Answer

if rand >= gamma
[~,imx]=max(A(s(1),s(2),:);
a=imx;
else
a = randi(nodes);
end