Element wise operation with own function without loops

10 vues (au cours des 30 derniers jours)
Radmilka
Radmilka le 7 Mai 2015
Commenté : Radmilka le 7 Mai 2015
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?

Réponse acceptée

Guillaume
Guillaume le 7 Mai 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.
  1 commentaire
Radmilka
Radmilka le 7 Mai 2015
I'll try this :) Thanks a lot for fast reply!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by