Element wise operation with own function without loops

44 views (last 30 days)
Hello! What is the syntax to do element wise operation with own function? Say, I have matrix A=magic(5) and function myFun(x). And need to do
for i=1:size(A,1)
for j=1:size(A,2)
A2=myFun(A(i,j));
end
end
How to avoid looping?
And one more question. I have an array F or 10 different matrices f1, f2... f10 and my function
function y = Q( f,h,g )
y=En(conv2(f,h,'full')-g)/En(g);
end
How can I apply this function to each matrix of this array simultaneously and without loops?

Accepted Answer

Guillaume
Guillaume on 7 May 2015
First question, use arrayfun:
A2 = arrayfun(@myfunc, A);
Second question, assuming your 10 different matrices are held in cell array F, use cellfun:
h = ??? %something
g = ??? %something else
F2 = cellfun(@(f) Q(f, h, g), F, 'UniformOutput', false); %assuming that Q returns non-scalar.

More Answers (0)

Categories

Find more on Loops and Conditional Statements 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!