In Excel 2010 32-bit, suppose I have a data series identified by X (row 1) and Y (row 2):
exceldataseries.bmp (136 KB)
The goal is to identify the peaks (highlighted in yellow) in row 3:
peaksfromFindPeaks.bmp (193 KB)
Inside a Mathematica notebook, the solution is in (FindPeaks: Peak detection on a signal—Wolfram Documentation)
FindPeaksexample.bmp (1020 KB)
Inside Excel using ExcelLink 3.5, what code can I use so that the peaks are marked by “Yes” in row 3? Any help will be much appreciated!
xlsxData = Import["~FindPeaks.xlsx"][[1]];
yesPeaks = DeleteCases[ Table[If[xlsxData[[3, n]] == "Yes", xlsxData[[1 ;; 2, n]], {}], {n, 1, Length[xlsxData[[1, ;;]]]}], {}]
ListPlot[{Transpose@xlsxData[[1 ;; 2, 2 ;;]], yesPeaks}, Joined -> {True, False}]
josklaps1
(Jos Klaps)
3
yesPeaks =
DeleteCases[
Table[If[xlsxData[[3, n]] == “Yes”, xlsxData[[1 ;; 2, n]], {}], {n,
1, Length[xlsxData[[1, ;;]]]}], {}]
ListPlot[{Transpose@xlsxData[[1 ;; 2, 2 ;;]], yesPeaks},
Joined -> {True, False}
, Epilog -> {Red, PointSize[0.04], Point[yesPeaks]}
]