Vectorizing Loops over Matrix Elements

I was wondering if there is a general method for vectorizing code of the form:
A = zeros(n,m);
for i = 1:n
for j = 1:m
A(i,j) = f[i, j]
end
end
where f[i,j] is some function of i and j.

 Accepted Answer

If the function f "knows" how to cope with two vectors as inputs that don't have the same size: Yes.
E.g.
n = 3;
m = 5;
f = @(i,j) i.'*j;
A = f(1:n,1:m)
A = 3×5
1 2 3 4 5 2 4 6 8 10 3 6 9 12 15

3 Comments

Thanks for your help! Can you explain what line 3 is doing? I'm not sure what the @(i,j) part of the code does. Is this where I insert my function?
Thanks
Torsten
Torsten on 5 Jun 2023
Edited: Torsten on 5 Jun 2023
f is a function handle that depends on the formal inputs i and j:
Got it. Thanks for your help!

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Release

R2022b

Asked:

on 23 May 2023

Commented:

on 5 Jun 2023

Community Treasure Hunt

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

Start Hunting!