how to store value from loop
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
sazzad hossen
il 26 Mag 2014
Commentato: sazzad hossen
il 27 Mag 2014
for i=1:0.1:5
ly=i;
for j=1:0.1:5;
lx=j;
c1=co1(x1,y1,z1,lx,ly,lz,f);
c2=co2(x2,y2,z1,lx,ly,lz,f);
c3=co3(x3,y3,z1,lx,ly,lz,f);
%options = optimoptions('fsolve','Display','iter');
func = @(x)efunction(x,x1,x2,x3,y1,y2,y3,c1,c2,c3,f);
[x,fval] = fsolve(func,x0);
X=x(1,1);
Y=x(1,2);
H=x(1,3);
x_error= sprintf('%.10f',abs(X-lx));
y_error=sprintf('%.10f',abs(Y-ly));
z_error=sprintf('%.10f',abs((z1-H)-lz));
end
end
problem : i just get only one value in each parameter of x_error, y_error, z_error
but i want to get/store all value of x_error, y_error and z_error
0 Commenti
Risposta accettata
rifat
il 27 Mag 2014
Your index isnt integer.. Use the following modification. And your program isnt self sufficient for me to execute.
idx = 0;
for i=1:0.1:5
ly=i;
idx=idx+1;
idy=0;
for j=1:0.1:5;
idy=idy+1;
lx=j;
c1=co1(x1,y1,z1,lx,ly,lz,f);
c2=co2(x2,y2,z1,lx,ly,lz,f);
c3=co3(x3,y3,z1,lx,ly,lz,f);
%options = optimoptions('fsolve','Display','iter');
func = @(x)efunction(x,x1,x2,x3,y1,y2,y3,c1,c2,c3,f);
[x,fval] = fsolve(func,x0);
X=x(1,1);
Y=x(1,2);
H=x(1,3);
x_error{idx,idy}= sprintf('%.10f',abs(X-lx));
y_error{idx,idy}=sprintf('%.10f',abs(Y-ly));
z_error{idx,idy}=sprintf('%.10f',abs((z1-H)-lz));
end
end
Più risposte (1)
Sara
il 26 Mag 2014
Define a cell array before the loop:
x_error = cell(50,50); % Adjust num elements according to your loops
and then do:
x_error{i,j} = ....
The same for the other variables.
Vedere anche
Categorie
Scopri di più su Solver-Based Optimization Problem Setup in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!