how to store value from loop
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
rifat
le 27 Mai 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
Plus de réponses (1)
Sara
le 26 Mai 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.
Voir également
Catégories
En savoir plus sur Global or Multiple Starting Point Search dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!