How to save the answer that is generated in a triple for loop?

1 view (last 30 days)
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

Answers (1)

Raj
Raj on 4 Jun 2019
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 Comments
Raj
Raj on 4 Jun 2019
Loop stops at 450. There is no reason for loop to run infinitely. Please check again.
Nikhil Murali Krishnaa
Nikhil Murali Krishnaa on 4 Jun 2019
Edited: Nikhil Murali Krishnaa on 4 Jun 2019
Thanks for your reply. But i checked it. It runs 450*450 times. 202500times

Sign in to comment.

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!