saving Iterations in the loop below

1 view (last 30 days)
Somebody please help urgently. I want to save the values of iterations of Modata in the loop. The current code is not working.
Ro = 0.05:0.1:0.45;
ii = 20*pi/180:20*pi/180:90*pi/180;
BGammaMax = 0.5:0.1:3;
phi2 = 0:2*pi/60:2*pi;
L = [];
for Ro_s = Ro
for ii_s = ii
for bg_s = BGammaMax
for phi2_s = phi2;
L2 =sqrt( Ro_s*ii_s)+(bg_s*phi2_s);
L = [L;L2];
MoData = [Ro_s ii_s bg_s phi2_s L2]
FN = (num2str(Ro_s), num2str(ii_s), num2str(bg_s), num2str(phi2), num2str(L));
dlmwrite('myFile.txt',FN,'delimiter',' ');
end
end
end
end

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 24 Aug 2016
Edited: Andrei Bobrov on 24 Aug 2016
Ro = 0.05:0.1:0.45;
ii = 20*pi/180:20*pi/180:90*pi/180;
BGammaMax = 0.5:0.1:3;
phi2 = 0:2*pi/60:2*pi;
a = cell(1,4);
[a{end:-1:1}] = ndgrid(phi2,BGammaMax,ii,Ro);
z = cell2mat(cellfun(@(x)x(:),a,'un',0));
MoData = [z, sqrt(z(:,1).*z(:,2)), z(:,3).*z(:,4)];
or
[x4,x3,x2,x1] = ndgrid(phi2,BGammaMax,ii,Ro);
MoData = [x1(:),x2(:),x3(:),x4(1), sqrt(x1(:).*x2(:)), x3(:).*x4(:)];
  4 Comments
Andrei Bobrov
Andrei Bobrov on 24 Aug 2016
Edited: Andrei Bobrov on 24 Aug 2016
[x4,x3,x2,x1] = ndgrid(phi2,BGammaMax,ii,Ro);
L = arrayfun(@(a,b,c,d)RoT(a,b,c,d),x1(:),x2(:),x3(:),x4(:));
MoData = [x1(:),x2(:),x3(:),x4(:),L];

Sign in to comment.

More Answers (0)

Categories

Find more on Custom Message Support in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!