<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/254605</link>
    <title>MATLAB Central Newsreader - Take out index</title>
    <description>Feed for thread: Take out index</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Wed, 24 Jun 2009 22:01:02 -0400</pubDate>
      <title>Take out index</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/254605#660281</link>
      <author>Diego Lass</author>
      <description>Hi &lt;br&gt;
For a problem,&lt;br&gt;
A = [ 1; 2; 3; 4; 5; 6; 7 ]&lt;br&gt;
A = &lt;br&gt;
&amp;nbsp;&amp;nbsp;1&lt;br&gt;
&amp;nbsp;&amp;nbsp;2&lt;br&gt;
&amp;nbsp;&amp;nbsp;3&lt;br&gt;
&amp;nbsp;&amp;nbsp;4&lt;br&gt;
&amp;nbsp;&amp;nbsp;5&lt;br&gt;
&amp;nbsp;&amp;nbsp;6&lt;br&gt;
&amp;nbsp;&amp;nbsp;7&lt;br&gt;
&lt;br&gt;
I know that I want to add 2 to each element, expect for the entries 1:2:end&lt;br&gt;
i.e. I want to get a function f()&lt;br&gt;
B = f(A) such that&lt;br&gt;
B = &lt;br&gt;
&amp;nbsp;&amp;nbsp;1&lt;br&gt;
&amp;nbsp;&amp;nbsp;3&lt;br&gt;
&amp;nbsp;&amp;nbsp;3&lt;br&gt;
&amp;nbsp;&amp;nbsp;6&lt;br&gt;
&amp;nbsp;&amp;nbsp;5&lt;br&gt;
&amp;nbsp;&amp;nbsp;8&lt;br&gt;
&amp;nbsp;&amp;nbsp;7&lt;br&gt;
what is the most efficient way to do this?  Remember add 2 is just a simple example, and the vector A might be really huge</description>
    </item>
    <item>
      <pubDate>Wed, 24 Jun 2009 22:17:46 -0400</pubDate>
      <title>Re: Take out index</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/254605#660286</link>
      <author>Nathan</author>
      <description>On Jun 24, 3:01&#160;pm, &quot;Diego Lass&quot; &amp;lt;dlISC...@gmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi&lt;br&gt;
&amp;gt; For a problem,&lt;br&gt;
&amp;gt; A = [ 1; 2; 3; 4; 5; 6; 7 ]&lt;br&gt;
&amp;gt; A =&lt;br&gt;
&amp;gt; &#160; 1&lt;br&gt;
&amp;gt; &#160; 2&lt;br&gt;
&amp;gt; &#160; 3&lt;br&gt;
&amp;gt; &#160; 4&lt;br&gt;
&amp;gt; &#160; 5&lt;br&gt;
&amp;gt; &#160; 6&lt;br&gt;
&amp;gt; &#160; 7&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I know that I want to add 2 to each element, expect for the entries 1:2:end&lt;br&gt;
&amp;gt; i.e. I want to get a function f()&lt;br&gt;
&amp;gt; B = f(A) such that&lt;br&gt;
&amp;gt; B =&lt;br&gt;
&amp;gt; &#160; 1&lt;br&gt;
&amp;gt; &#160; 3&lt;br&gt;
&amp;gt; &#160; 3&lt;br&gt;
&amp;gt; &#160; 6&lt;br&gt;
&amp;gt; &#160; 5&lt;br&gt;
&amp;gt; &#160; 8&lt;br&gt;
&amp;gt; &#160; 7&lt;br&gt;
&amp;gt; what is the most efficient way to do this? &#160;Remember add 2 is just a simple example, and the vector A might be really huge&lt;br&gt;
&lt;br&gt;
What about&lt;br&gt;
A(2:2:end) = A(2:2:end)+2;&lt;br&gt;
B = A;&lt;br&gt;
&lt;br&gt;
Simple enough?</description>
    </item>
    <item>
      <pubDate>Wed, 24 Jun 2009 23:50:18 -0400</pubDate>
      <title>Re: Take out index</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/254605#660306</link>
      <author>Oleg </author>
      <description>Nathan &amp;lt;ngreco32@gmail.com&amp;gt; wrote in message &amp;lt;c3448c04-efa4-463b-82c3-2e58518ba8d5@o5g2000prh.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; On Jun 24, 3:01?pm, &quot;Diego Lass&quot; &amp;lt;dlISC...@gmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; &amp;gt; Hi&lt;br&gt;
&amp;gt; &amp;gt; For a problem,&lt;br&gt;
&amp;gt; &amp;gt; A = [ 1; 2; 3; 4; 5; 6; 7 ]&lt;br&gt;
&amp;gt; &amp;gt; A =&lt;br&gt;
&amp;gt; &amp;gt; ? 1&lt;br&gt;
&amp;gt; &amp;gt; ? 2&lt;br&gt;
&amp;gt; &amp;gt; ? 3&lt;br&gt;
&amp;gt; &amp;gt; ? 4&lt;br&gt;
&amp;gt; &amp;gt; ? 5&lt;br&gt;
&amp;gt; &amp;gt; ? 6&lt;br&gt;
&amp;gt; &amp;gt; ? 7&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; I know that I want to add 2 to each element, expect for the entries 1:2:end&lt;br&gt;
&amp;gt; &amp;gt; i.e. I want to get a function f()&lt;br&gt;
&amp;gt; &amp;gt; B = f(A) such that&lt;br&gt;
&amp;gt; &amp;gt; B =&lt;br&gt;
&amp;gt; &amp;gt; ? 1&lt;br&gt;
&amp;gt; &amp;gt; ? 3&lt;br&gt;
&amp;gt; &amp;gt; ? 3&lt;br&gt;
&amp;gt; &amp;gt; ? 6&lt;br&gt;
&amp;gt; &amp;gt; ? 5&lt;br&gt;
&amp;gt; &amp;gt; ? 8&lt;br&gt;
&amp;gt; &amp;gt; ? 7&lt;br&gt;
&amp;gt; &amp;gt; what is the most efficient way to do this? ?Remember add 2 is just a simple example, and the vector A might be really huge&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; What about&lt;br&gt;
&amp;gt; A(2:2:end) = A(2:2:end)+2;&lt;br&gt;
&amp;gt; B = A;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Simple enough?&lt;br&gt;
&lt;br&gt;
Considering as suggested by Nathan your function would be:&lt;br&gt;
&lt;br&gt;
function Out = ArrayInc(In_array, Increment, OddEven)&lt;br&gt;
% Check part (up to you)&lt;br&gt;
&lt;br&gt;
% Engine part&lt;br&gt;
if nargin == 2&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Even = 1;&lt;br&gt;
else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;whichcase = [0,1];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;IDX = strcmpi(OddEven, {'odd', 'even'});&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Even = whichcase(IDX);&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
In_array(1+Even:2:end) = In_array(1+Even:2:end)+Increment;&lt;br&gt;
Out =  In_array;&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
The OddEven input must be string. If you write 'even', even - positioned elements in the input array wil be incremented by &quot;Increment&quot;, else odd - positioned el.&lt;br&gt;
&lt;br&gt;
Cheers</description>
    </item>
  </channel>
</rss>

