How to save the answer that is generated in a triple for loop?
1 次查看(过去 30 天)
显示 更早的评论
I need to compare two signal each time for various combinations and find the best signal that correlates. But saving the answer is overwriting everytime in the loop. How do i save the answer in a matrix so that later i can get the max value from it. This is my code now;
peaks = cell(450,1);
for K1 = 170000:5000:210000
kn = numel(K1);
for B1 = 1:10:100
bn = numel(B1);
for M1 = 1:0.05:1.2
mn = numel(M1);
S=sim('MSDsystem');
Display=S.Displacement(:,2);
Mass=Mass1(:,2)/1000000;
[c,lag]=xcorr(Mass,Display);
peak = max(c);
peaks{1i} = peak ;
end
end
end
0 个评论
回答(1 个)
Raj
2019-6-4
Just add one more loop to index the 'peaks' something like this:
for ii=1:numel(peaks)
for K1 = 170000:5000:210000
kn = numel(K1);
for B1 = 1:10:100
bn = numel(B1);
for M1 = 1:0.05:1.2
mn = numel(M1);
S=sim('MSDsystem');
Display=S.Displacement(:,2);
Mass=Mass1(:,2)/1000000;
[c,lag]=xcorr(Mass,Display);
peak = max(c);
peaks{ii} = peak ;
end
end
end
end
Then outside the loops use this:
peaks=str2double(peaks);
MaxPeak=max(peaks)
Is this what you are looking for?
3 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!