<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:Monospaced;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"Préformaté HTML Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.PrformatHTMLCar
        {mso-style-name:"Préformaté HTML Car";
        mso-style-priority:99;
        mso-style-link:"Préformaté HTML";
        font-family:Consolas;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.HTMLPreformatted, li.HTMLPreformatted, div.HTMLPreformatted
        {mso-style-name:"HTML Preformatted";
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
span.EmailStyle24
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D;mso-fareast-language:EN-US">Hi Clément,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:EN-US">Thank you for your quick reply and solution ! Actually it’s working for simple data but with noisy experimental timeseries, some filtering is required to get perfect regular
 signal (between the ‘true’ extrema) that could be then managed by the routine. I suppose this is something the Matlab/Octave is handling internally, with some parameters as function’s argument to tune it, maybe it’s not the case .<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:EN-US">David<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>De :</b> users <users-bounces@lists.scilab.org> <b>De la part de</b> Clément David<br>
<b>Envoyé :</b> mardi 16 mars 2021 16:27<br>
<b>À :</b> Users mailing list for Scilab <users@lists.scilab.org><br>
<b>Objet :</b> Re: [Scilab-users] find and locate local maxima<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">Hello David,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">After reading the Matlab documentation page, it seems pretty simple to implement using Scilab : and $ symbols:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#B01813">function</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">
<span style="color:#4A55DB">[</span><b><span style="color:#834310">pks</span></b><span style="color:black">,
</span><b><span style="color:#834310">locs</span></b><span style="color:#4A55DB">]</span><span style="color:#5C5C5C">=</span><u><span style="color:black">findpeaks</span></u><span style="color:#4A55DB">(</span><b><span style="color:#834310">data</span></b><span style="color:#4A55DB">)</span><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">   
<span style="color:black">ii</span> <span style="color:#5C5C5C">=</span> <span style="color:#32B9B9">
find</span><span style="color:#4A55DB">(</span><span style="color:black">d</span><span style="color:#4A55DB">(</span><span style="color:rosybrown">1</span><span style="color:#FFAA00">:$</span><span style="color:#5C5C5C">-</span><span style="color:rosybrown">2</span><span style="color:#4A55DB">)</span>
<span style="color:#5C5C5C"><</span> <span style="color:black">d</span><span style="color:#4A55DB">(</span><span style="color:rosybrown">2</span><span style="color:#FFAA00">:$</span><span style="color:#5C5C5C">-</span><span style="color:rosybrown">1</span><span style="color:#4A55DB">)</span>
<span style="color:#5C5C5C">&</span> <span style="color:black">d</span><span style="color:#4A55DB">(</span><span style="color:rosybrown">2</span><span style="color:#FFAA00">:$</span><span style="color:#5C5C5C">-</span><span style="color:rosybrown">1</span><span style="color:#4A55DB">)</span>
<span style="color:#5C5C5C">>=</span> <span style="color:black">d</span><span style="color:#4A55DB">(</span><span style="color:rosybrown">3</span><span style="color:#FFAA00">:$</span><span style="color:#4A55DB">))</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">   
<b><span style="color:#834310">pks</span></b> <span style="color:#5C5C5C">=</span>
<b><span style="color:#834310">data</span></b><span style="color:#4A55DB">(</span><span style="color:black">ii</span><span style="color:#5C5C5C">+</span><span style="color:rosybrown">2</span><span style="color:#4A55DB">)</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">   
<b><span style="color:#834310">locs</span></b> <span style="color:#5C5C5C">=</span>
<span style="color:black">ii</span> <span style="color:#5C5C5C">+</span> <span style="color:rosybrown">
2</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#B01813">endfunction</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:black">data</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">
<span style="color:#5C5C5C">=</span> <span style="color:#4A55DB">[</span><span style="color:rosybrown">25</span>
<span style="color:rosybrown">8</span> <span style="color:rosybrown">15</span> <span style="color:rosybrown">
5</span> <span style="color:rosybrown">6</span> <span style="color:rosybrown">10</span>
<span style="color:rosybrown">10</span> <span style="color:rosybrown">3</span> <span style="color:rosybrown">
1</span> <span style="color:rosybrown">20</span> <span style="color:rosybrown">7</span><span style="color:#4A55DB">]</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><u><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#AE5CB0">plot</span></u><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#4A55DB">(</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:black">data</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#4A55DB">)</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#4A55DB">[</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:black">pks,locs</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#4A55DB">]</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">
<span style="color:#5C5C5C">=</span> <u><span style="color:#AE5CB0">findpeaks</span></u><span style="color:#4A55DB">(</span><span style="color:black">data</span><span style="color:#4A55DB">)</span><span style="color:black">;</span><o:p></o:p></span></p>
<p class="MsoNormal"><u><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#AE5CB0">plot</span></u><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:#4A55DB">(</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:black">locs,</span><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">
<span style="color:black">pks,</span> <span style="color:rosybrown">'xr'</span><span style="color:#4A55DB">)</span><span style="color:black">;<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:black">Note: using oct2py and pims might also be an option for simple cases but these wrappers are complex to use and data need to be copied at language boundaries.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.5pt;font-family:Monospaced">Clément</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> users <<a href="mailto:users-bounces@lists.scilab.org">users-bounces@lists.scilab.org</a>>
<b>On Behalf Of </b>CHEZE David 227480<br>
<b>Sent:</b> Tuesday, March 16, 2021 2:53 PM<br>
<b>To:</b> Users mailing list for Scilab <<a href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>><br>
<b>Subject:</b> [Scilab-users] find and locate local maxima<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-GB">I’m looking for function that could find and locate every local maxima of any discrete time signal (timeseries), similar to Matlab or Octave function findpeaks(), scipy find_peaks(). Is anyone aware if something similar
 is already available in Scilab ? (I already browsed a little bit and it don’t seem so…)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">If not in Scilab macros, any hint to use the Octave or scipy function directly from Scilab?
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">More globally it seems that Octave Forge could be linked with Python (from oct2py import octave<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"># Load the Octage-Forge signal package.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">octave.eval("pkg load signal")), does someone ever tried to bridge similarly in Scilab ? oct2sci<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Kind regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:10.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif">David
</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>