Repeat resampling with replacement process several times

Hello,
I have the below code for resampling with replacement.
res1 = [];
res2 = [];
% centerd matrix size:2X7
cen1=centered(1,:);
cen2=centered(2,:);
for j=1:7
res1_temp=cen1(randi(7,1));
res1= [res1 res1_temp];
%
res2_temp=cen2(7,1));
res2= [res2 res2_temp];
end
res_total=[res1; res2]; % 2X7
Now I have to repeat this process 170 times because centered matrix size is 170X7. That is, must have
re1=[];
res2=[];
.......
res170[];
......
res_total=[res1;res2,.....
res170];
and the res_total should be 170X7. How can I as easy as possible?

 채택된 답변

VBBV
VBBV 2022년 11월 21일
편집: VBBV 2022년 11월 21일
res1 = [];
res2 = [];
centered = rand(170,7)
centered = 170×7
0.6558 0.6340 0.7993 0.3911 0.8091 0.8170 0.1949 0.9049 0.7951 0.6934 0.1121 0.0001 0.1897 0.4469 0.3652 0.0276 0.8570 0.7298 0.7666 0.3056 0.2107 0.9367 0.4151 0.2733 0.7628 0.5691 0.6688 0.8626 0.6983 0.4839 0.8889 0.4091 0.7523 0.3580 0.3595 0.9022 0.9422 0.6523 0.8360 0.9986 0.3244 0.6809 0.0640 0.9521 0.1633 0.6885 0.4294 0.0889 0.3304 0.5681 0.7248 0.8518 0.8903 0.8060 0.3555 0.2800 0.3060 0.6259 0.1338 0.7183 0.2156 0.2771 0.4144 0.2730 0.7219 0.0963 0.6360 0.6344 0.2485 0.8829
% centerd matrix size:2X7
% cen1=centered(1,:);
% cen2=centered(2,:);
for j=1:85
cen1 = centered(j,:);
res1(j,:) = cen1;
%
cen2 = centered(j+85,:);
res2(j,:) = cen2;
end
res_total=[res1; res2] % 2X7
res_total = 170×7
0.6558 0.6340 0.7993 0.3911 0.8091 0.8170 0.1949 0.9049 0.7951 0.6934 0.1121 0.0001 0.1897 0.4469 0.3652 0.0276 0.8570 0.7298 0.7666 0.3056 0.2107 0.9367 0.4151 0.2733 0.7628 0.5691 0.6688 0.8626 0.6983 0.4839 0.8889 0.4091 0.7523 0.3580 0.3595 0.9022 0.9422 0.6523 0.8360 0.9986 0.3244 0.6809 0.0640 0.9521 0.1633 0.6885 0.4294 0.0889 0.3304 0.5681 0.7248 0.8518 0.8903 0.8060 0.3555 0.2800 0.3060 0.6259 0.1338 0.7183 0.2156 0.2771 0.4144 0.2730 0.7219 0.0963 0.6360 0.6344 0.2485 0.8829

댓글 수: 3

I understood what you suggested above, but I tried to do it like this:
for j=1:170
res_total(j,:)=centered(randi(j,:))
end
But it does not work.
May be you mean this instead
% res1 = [];
% res2 = [];
centered = rand(170,7);
for j=1:170
res_total(j,:)=centered(randi(j),:);
end
res_total
res_total = 170×7
0.4400 0.2235 0.8825 0.6564 0.4160 0.3429 0.0489 0.4400 0.2235 0.8825 0.6564 0.4160 0.3429 0.0489 0.0892 0.7041 0.9296 0.5553 0.7713 0.8969 0.5811 0.4400 0.2235 0.8825 0.6564 0.4160 0.3429 0.0489 0.0892 0.7041 0.9296 0.5553 0.7713 0.8969 0.5811 0.0892 0.7041 0.9296 0.5553 0.7713 0.8969 0.5811 0.1172 0.3186 0.5401 0.9210 0.5579 0.0420 0.7755 0.7331 0.6314 0.0854 0.2315 0.7209 0.7810 0.0977 0.8592 0.8540 0.0853 0.2848 0.9761 0.5497 0.2875 0.7331 0.6314 0.0854 0.2315 0.7209 0.7810 0.0977
It works!!!! Thanks for the valuable help!!!!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2022년 11월 21일

댓글:

2022년 11월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by