# How to create a matrix with nested for loop for fraction entries?

3 views (last 30 days)
Tanya Sharma on 28 Sep 2021
Commented: Mathieu NOE on 28 Sep 2021
I want to create a matrix where x and g has values given as ii and jj.
The code runs fine but I want a 3 by 3 matrix as an output.
How to correct the code?
clear;
clc;
ii=0.5:.1:.7;
jj=.4:.1:.6;
mat=zeros(length(ii),length(jj));
mm=1;
for x=ii
kk=1;
for g=jj
y=1;
f=x*y*g;
mat(kk,mm)=f
kk=kk+1;
mm=mm+1;
end
end

Mathieu NOE on 28 Sep 2021
hello
here are a few mods to get a correct 3 x 3 output
clear;
clc;
ii=0.5:.1:.7;
jj=.4:.1:.6;
mat=zeros(length(ii),length(jj));
kk=1;
for x=ii
mm=1;
for g=jj
y=1;
f=x*y*g;
mat(kk,mm) = f ;
mm=mm+1;
end
kk=kk+1;
end
##### 2 CommentsShowHide 1 older comment
Mathieu NOE on 28 Sep 2021
My pleasure
Have to admit @Rik 's suggestion is very valuable too.

Rik on 28 Sep 2021
Why use loops at all?
y=1;
ii=0.5:.1:.7;
jj=.4:.1:.6;
[ii,jj]=ndgrid(ii,jj);
mat=ii.*y.*jj;
disp(mat)
0.2000 0.2500 0.3000 0.2400 0.3000 0.3600 0.2800 0.3500 0.4200
Tanya Sharma on 28 Sep 2021
Great. This too works efficiently. Thanks a lot Rik.