<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Thanks Clément. <br>
</p>
<p>Interested users can readily download the files if they want to
test the implementation even if it has not been reviewed.
Particularly, it has not been discussed if we want to stick to the
Matlab's implementation and API for this particular feature.
Comments are welcome.</p>
<p>S.<br>
</p>
<div class="moz-cite-prefix">Le 17/03/2021 à 10:19, Clément David a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:PR2PR09MB35628B073202B60D2644EBE9B06A9@PR2PR09MB3562.eurprd09.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@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;
panose-1:0 0 0 0 0 0 0 0 0 0;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
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:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
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";}p.PrformatHTML, li.PrformatHTML, div.PrformatHTML
{mso-style-name:"Préformaté HTML";
mso-style-link:"Préformaté HTML Car";
margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}span.PrformatHTMLCar
{mso-style-name:"Préformaté HTML Car";
mso-style-priority:99;
mso-style-link:"Préformaté HTML";
font-family:Consolas;}span.EmailStyle23
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}span.EmailStyle24
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}span.EmailStyle25
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}span.EmailStyle26
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}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]-->
<div class="WordSection1">
<p class="MsoNormal">Hello all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I take your question as a way to explain /
remind how we validate user contributions into the Scilab
source code. Any change to the source code should be pushed to
the codereview.scilab.org website (this is a gerrit instant, a
git server that help reviewing changes). This help testing on
multiple machines/OS/compilers and review the content ; any
user can comment and give +1/-1 on a change. After there is no
disagreement, we merge it into the Scilab source code.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The “Cannot merge” error is an alert to the
reviewer, this commit need to be rebase (refreshed) against
the latest source code ; this is not a blocker for the review
but rather for a one-click merge
<span style="font-family:"Segoe UI
Emoji",sans-serif">😊</span>.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Clément<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> users
<a class="moz-txt-link-rfc2396E" href="mailto:users-bounces@lists.scilab.org"><users-bounces@lists.scilab.org></a> <b>On Behalf Of
</b>Claus Futtrup<br>
<b>Sent:</b> Tuesday, March 16, 2021 7:40 PM<br>
<b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a><br>
<b>Subject:</b> Re: [Scilab-users] find and locate local
maxima<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi Stéphane<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It looks very nice and I hope it will be
added to Scilab as proposed by your code review. Why does it
say in red print "Cannot Merge" ?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">/Claus<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">On 16-03-2021 17:45, Stéphane Mottelet
wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p>Hi<o:p></o:p></p>
<p>For real life signals you should rather use something like
this (Savitsky-Golay filters)<o:p></o:p></p>
<p><a
href="https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/codereview.scilab.org/#/c/21499/"
moz-do-not-send="true">https://codereview.scilab.org/#/c/21499/</a><o:p></o:p></p>
<p>S.<o:p></o:p></p>
<div>
<p class="MsoNormal">Le 16/03/2021 à 17:09, CHEZE David
227480 a écrit :<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi Clément,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"
lang="EN-GB">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 .</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"
lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"
lang="EN-GB">Regards,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"
lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"
lang="EN-GB">David</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"
lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"
lang="EN-GB"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>De :</b> users <a
href="mailto:users-bounces@lists.scilab.org"
moz-do-not-send="true">
<users-bounces@lists.scilab.org></a> <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 <a
href="mailto:users@lists.scilab.org"
moz-do-not-send="true">
<users@lists.scilab.org></a><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">Hello David,<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">After reading the Matlab documentation
page, it seems pretty simple to implement using Scilab :
and $ symbols:<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#B01813">function</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif">
<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></span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif">
<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></span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif">
<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></span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif">
<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></span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#B01813">endfunction</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif"> </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:black">data</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif">
<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></span><o:p></o:p></p>
<p class="MsoNormal"><u><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#AE5CB0">plot</span></u><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#4A55DB">(</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:black">data</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#4A55DB">)</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif"> </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#4A55DB">[</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:black">pks,locs</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#4A55DB">]</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif">
<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></span><o:p></o:p></p>
<p class="MsoNormal"><u><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#AE5CB0">plot</span></u><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:#4A55DB">(</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:black">locs,</span><span
style="font-size:11.5pt;font-family:"Monospaced",serif">
<span style="color:black">pks,</span> <span
style="color:rosybrown">'xr'</span><span
style="color:#4A55DB">)</span><span
style="color:black">;</span></span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:black"> </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif;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.</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif;color:black"> </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif">Regards,</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif"> </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:11.5pt;font-family:"Monospaced",serif">Clément</span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> users <<a
href="mailto:users-bounces@lists.scilab.org"
moz-do-not-send="true">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"
moz-do-not-send="true">users@lists.scilab.org</a>><br>
<b>Subject:</b> [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">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…)</span><o:p></o:p></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?
</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-GB">More globally it
seems that Octave Forge could be linked with Python
(from oct2py import octave</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-GB"># Load the
Octage-Forge signal package.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-GB">octave.eval("pkg
load signal")), does someone ever tried to bridge
similarly in Scilab ? oct2sci</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-GB">Kind regards,</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif"
lang="EN-GB"> </span><o:p></o:p></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>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">_______________________________________________<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">users mailing list<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New""><a href="mailto:users@lists.scilab.org" moz-do-not-send="true">users@lists.scilab.org</a><o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New""><a href="https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users" moz-do-not-send="true">https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users</a><o:p></o:p></span></pre>
</blockquote>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">-- <o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">Stéphane Mottelet<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">Ingénieur de recherche<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">EA 4297 Transformations Intégrées de la Matière Renouvelable<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">Département Génie des Procédés Industriels<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">Sorbonne Universités - Université de Technologie de Compiègne<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">CS 60319, 60203 Compiègne cedex<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">Tel : +33(0)344234688<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New""><a href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.utc.fr/~mottelet" moz-do-not-send="true">http://www.utc.fr/~mottelet</a><o:p></o:p></span></pre>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">_______________________________________________<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New"">users mailing list<o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New""><a href="mailto:users@lists.scilab.org" moz-do-not-send="true">users@lists.scilab.org</a><o:p></o:p></span></pre>
<pre><span style="font-size:10.0pt;font-family:"Courier New""><a href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users" moz-do-not-send="true">http://lists.scilab.org/mailman/listinfo/users</a><o:p></o:p></span></pre>
</blockquote>
<p><o:p> </o:p></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users">https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
<a class="moz-txt-link-freetext" href="http://www.utc.fr/~mottelet">http://www.utc.fr/~mottelet</a>
</pre>
</body>
</html>