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.

 Akzeptierte Antwort

Torsten
Torsten am 23 Mai 2023
Verschoben: Torsten am 23 Mai 2023
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 Kommentare

Tate Tower
Tate Tower am 5 Jun. 2023
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 am 5 Jun. 2023
Bearbeitet: Torsten am 5 Jun. 2023
f is a function handle that depends on the formal inputs i and j:
Tate Tower
Tate Tower am 5 Jun. 2023
Got it. Thanks for your help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by