Save a loop iteration into a ZEROS array

I am trying to run a cycle inside a cycle, the inner cicle gets all the data for the rist row while the outer cycle changes to the next row and it keeps going until the 100x100 array is filled with the info I got from running each loop. But all I get is a 100x100 array of zeros. Can anyone help me out?
Code:
A = 10;
B = 5;
i = sqrt(-1);
Array = zeros(100,100);
a = 1;
b = 1;
for y = 0:0.1:10
for x = 0.1:0.1:10
fXy = A.*exp(-(x.^2 + y.^2)/(B^2)).*exp(i.*atan(y/x));
Array(b,a) = fXy;
a = a + 1;
end
b = b + 1;
end

답변 (1개)

KSSV
KSSV 2021년 9월 19일

0 개 추천

Note that Array is not all zeros. It has complex numbers, so when you are printing you feel like they are zeros. Also you need not to use loop. You can proceed as below:
x = 0.1:0.1:10 ;
y = 0:0.10:10 ;
[x,y] = meshgrid(x,y) ;
Z = A.*exp(-(x.^2 + y.^2)/(B^2)).*exp(1i.*atan(y./x));

카테고리

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

제품

릴리스

R2020b

질문:

2021년 9월 18일

답변:

2021년 9월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by