Storing information from a loop over 3 variables
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
RP
el 4 de Abr. de 2022
Editada: Geoff Hayes
el 4 de Abr. de 2022
The code below seems to store the results from each loop as opposed to providing the results from the current loop.
So, for example Table(1,1,2) has the results of Table (1,1,1) and Table (1,1,2).
x=xlsread('DeltaNAV.xlsx','Sheet1','O4:O200003');
SCR=prctile(x,0.5);
rho=0;
muinputs=[-0.025,-0.010,0.0181,0.025];
sigmainputs=[0.0125,0.0287,0.0501,0.0751];
Table=cell(4,4,9);
for i=1:4
for j=1:4
for ii=1:9
muy=-muinputs(i)*SCR;
sigmay=-sigmainputs(j)*SCR;
%muy=-0.1*SCR;
%sigmay=-0.1*SCR;
y(:,ii)=Testlooping(x,rho,muy,sigmay);
y2(:,ii)=x+y(:,ii);
y3(:,ii)=prctile(y2(:,ii),0.5);
Table{i,j,ii}=y3;
end
end
end
0 comentarios
Respuesta aceptada
Geoff Hayes
el 4 de Abr. de 2022
@RP - look closely at this code
for i=1:4
for j=1:4
for ii=1:9
muy=-muinputs(i)*SCR;
sigmay=-sigmainputs(j)*SCR;
y(:,ii)=Testlooping(x,rho,muy,sigmay);
y2(:,ii)=x+y(:,ii);
y3(:,ii)=prctile(y2(:,ii),0.5);
Table{i,j,ii}=y3;
end
end
end
when ii is 1, then the code is doing
y(:,1)=Testlooping(x,rho,muy,sigmay);
y2(:,1)=x+y(:,1);
y3(:,1)=prctile(y2(:,1),0.5);
Table{i,j,1}=y3;
On the subsequent iteration, when ii is 2, then
y(:,2)=Testlooping(x,rho,muy,sigmay);
y2(:,2)=x+y(:,2);
y3(:,2)=prctile(y2(:,2),0.5);
Table{i,j,2}=y3;
Note that the assignment to Table{i,j,2} is y3 which combines the results of the current iteration and that of the previous. I don't think that you need to maintain this data on each iteration and so the code could be simplified to
y = Testlooping(x,rho,muy,sigmay);
y2 = x + y;
y3 = prctile(y2,0.5);
Table{i,j,2} = y3;
Would the above work instead?
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!