How to find peaks in a for loop where the number of peaks are not the same for every vector in matrix?

4 次查看(过去 30 天)
I am trying to find the peaks and locations of vectors in the columns of a matrix (CH1WaveForm_1). Not every vector has the same number of peaks and I think thats why it is giving me this error: Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.
for i=1:size(CH1WaveForm_1,2)
QT(:,i) = [CH1WaveForm_1(1:end,i)];
[pks(i),locs(i)]=findpeaks(QT(:,i));
end
I keep getting that error and I have tried changing the last line to [pks(:,i),locs(:,i)]=findpeaks(QT(:,i)); and it still does not work. Is there any way to make this work without having to write the individual lines of code for the entire matrix? The matrix is 5119 x 102.

采纳的回答

dpb
dpb 2020-6-9
That's when cell arrays are useful...
for i=1:size(CH1WaveForm_1,2)
[pks{i},locs{i}]=findpeaks(CH1WaveForm_1(1:end,i));
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by