<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/161253</link>
    <title>MATLAB Central Newsreader - how to vectorize this</title>
    <description>Feed for thread: how to vectorize this</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>Tue, 25 Dec 2007 08:28:06 -0500</pubDate>
      <title>how to vectorize this</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/161253#407183</link>
      <author>Xiao Chen</author>
      <description>Hi&lt;br&gt;
A very simple question:&lt;br&gt;
I want to replace the diagonals of a matrix.&lt;br&gt;
for example,&lt;br&gt;
a=[1 1 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;1 1 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;1 1 1]&lt;br&gt;
I need to change 1 in the diagonals to 2, and the result&lt;br&gt;
a=[2 1 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;1 2 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;1 1 2]&lt;br&gt;
I can write this code in a For loop.&lt;br&gt;
I'm sure there is a much better way to do the same job, &lt;br&gt;
hmmm, writing it in a vectorized form. But I have not been &lt;br&gt;
able to figure one out. &lt;br&gt;
&lt;br&gt;
Can somebody help me, thanks!!!</description>
    </item>
    <item>
      <pubDate>Sat, 29 Dec 2007 19:09:29 -0500</pubDate>
      <title>Re: how to vectorize this</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/161253#407519</link>
      <author>Markus Buehren</author>
      <description>If you have a square matrix with N rows and columns, you can&lt;br&gt;
index the diagonal elements like this:&lt;br&gt;
&lt;br&gt;
N=3;&lt;br&gt;
A=ones(N);&lt;br&gt;
A(1:(N+1):end)=2&lt;br&gt;
A =&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2     1     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     2     1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1     1     2&lt;br&gt;
&lt;br&gt;
Regards&lt;br&gt;
Markus</description>
    </item>
    <item>
      <pubDate>Sun, 30 Dec 2007 05:41:13 -0500</pubDate>
      <title>Re: how to vectorize this</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/161253#407533</link>
      <author>Rick Rosson</author>
      <description>&lt;br&gt;
Hi Xiao,&lt;br&gt;
&lt;br&gt;
Another possible approach:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;N = 3;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A = ones(N);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;idx = logical(eye(N));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A(idx) = 2;&lt;br&gt;
&lt;br&gt;
I hope that helps.  Thank you very much.&lt;br&gt;
&lt;br&gt;
Rick Rosson&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&quot;Markus Buehren&quot; &amp;lt;mb_matlab.REMOVE@gmxTHIS.de&amp;gt; wrote in message &lt;br&gt;
&amp;lt;fl6619$3cp$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; If you have a square matrix with N rows and columns, you can&lt;br&gt;
&amp;gt; index the diagonal elements like this:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; N=3;&lt;br&gt;
&amp;gt; A=ones(N);&lt;br&gt;
&amp;gt; A(1:(N+1):end)=2&lt;br&gt;
&amp;gt; A =&lt;br&gt;
&amp;gt;      2     1     1&lt;br&gt;
&amp;gt;      1     2     1&lt;br&gt;
&amp;gt;      1     1     2&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Regards&lt;br&gt;
&amp;gt; Markus</description>
    </item>
  </channel>
</rss>

