<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hallo Samuel,<br>
    Tanquam ex ungue leonem! Great!<br>
    <br>
    Kind regards<br>
    Jens<br>
    -------------------------------------------------------------<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 05.12.2018 22:12, schrieb Samuel
      Gougeon:<br>
    </div>
    <blockquote cite="mid:1c935a5b-b051-2154-ddd1-2d0fcbdaf550@free.fr"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html;
        charset=windows-1252">
      <div class="moz-cite-prefix">Le 05/12/2018 à 13:01, Jens Simon
        Strom a écrit :<br>
      </div>
      <blockquote cite="mid:5C07BE16.5080504@hslmg.de" type="cite">
        Hallo Scilab experts,<br>
        Given is a numeric vector x of length n and an index vector i
        with  max(i)=n. I want to insert a %nan after every x(i).<br>
        <br>
        Example <br>
        x=[11:20] <br>
        i=[2 5 8] <br>
        Required result: y=[11 12 %nan 13 14 15 %nan 16 17 18 %nan 19
        20]<br>
        <br>
        How would you proceed so that it works fast for n>500000 too.<br>
      </blockquote>
      <br>
      The following code does it:<br>
      <br>
      <pre><span>x</span> <span>=</span> <span>11</span><span>:</span><span>20</span><span>;</span>
<span>i</span> <span>= </span><span>[</span><span>2</span> <span>5</span> <span>8</span><span>]</span><span>;</span>
<span>//                   [11 12      13 14 15      16 17 18      19 20]</span>
<span>//Required result: y=[11 12 %nan 13 14 15 %nan 16 17 18 %nan 19 20]</span>
<span>nx</span> <span>=</span> <span>size</span><span>(</span><span>x</span><span>,</span><span>"</span><span>*</span><span>"</span><span>)</span><span>;</span>
<span>ni</span> <span>=</span> <span>size</span><span>(</span><span>i</span><span>,</span><span>"</span><span>*</span><span>"</span><span>)</span><span>;</span>
<span>o</span> <span>=</span> <span>ones</span><span>(</span><span>1</span><span>,</span><span>nx</span><span>)</span><span>;</span>
<span>o</span><span>(</span><span>i</span><span>+</span><span>1</span><span>)</span> <span>=</span> <span>2</span><span>;</span>
<span>newx</span> <span>=</span> <span>zeros</span><span>(</span><span>1</span><span>,</span><span>nx</span><span>+</span><span>ni</span><span>)</span><span>;</span>
<span>newx</span><span>(</span><span>cumsum</span><span>(</span><span>o</span><span>)</span><span>)</span> <span>=</span> <span>x</span><span>;</span>
<span>newx</span><span>(</span><span>i</span><span>+</span><span>(</span><span>1</span><span>:</span><span>ni</span><span>)</span><span>)</span> <span>=</span> <span>%nan

--> newx(i+(1:ni)) = %nan
 newx  = 
   11.   12.   Nan   13.   14.   15.   Nan   16.   17.   18.   Nan   19.   20.
</span>
</pre>
      Regards<br>
      Samuel<br>
      <span><br>
      </span> <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <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="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>