Storing information from a loop over 3 variables
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Geoff Hayes
2022 年 4 月 4 日
@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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!