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.

 채택된 답변

Torsten
Torsten 2023년 5월 23일
이동: Torsten 2023년 5월 23일

0 개 추천

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

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

릴리스

R2022b

질문:

2023년 5월 23일

댓글:

2023년 6월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by