<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/244187</link>
    <title>MATLAB Central Newsreader - choosing particular elements of a matrix</title>
    <description>Feed for thread: choosing particular elements of a matrix</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, 10 Feb 2009 11:19:10 -0500</pubDate>
      <title>choosing particular elements of a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/244187#627295</link>
      <author>learner</author>
      <description>Hi..!&lt;br&gt;
&lt;br&gt;
I have a matrix of complex numbers, say a matrix of dimension 256x256.&lt;br&gt;
I also have a  radius,r = sqrt((real)^2+(img)^2))i.e the absolute&lt;br&gt;
value.&lt;br&gt;
&lt;br&gt;
I want to set all the values of matrix from its center to the radius r&lt;br&gt;
equal to another higher   value R. Please help.&lt;br&gt;
&lt;br&gt;
Thank you</description>
    </item>
    <item>
      <pubDate>Tue, 10 Feb 2009 11:58:01 -0500</pubDate>
      <title>Re: choosing particular elements of a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/244187#627301</link>
      <author>David </author>
      <description>learner &amp;lt;learner388@gmail.com&amp;gt; wrote in message &amp;lt;3ad3d647-8b4b-44f7-8a34-57874e98d155@z28g2000prd.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; Hi..!&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I have a matrix of complex numbers, say a matrix of dimension 256x256.&lt;br&gt;
&amp;gt; I also have a  radius,r = sqrt((real)^2+(img)^2))i.e the absolute&lt;br&gt;
&amp;gt; value.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I want to set all the values of matrix from its center to the radius r&lt;br&gt;
&amp;gt; equal to another higher   value R. Please help.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Thank you&lt;br&gt;
&lt;br&gt;
ok, so what have you done so far?</description>
    </item>
    <item>
      <pubDate>Tue, 10 Feb 2009 13:12:47 -0500</pubDate>
      <title>Re: choosing particular elements of a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/244187#627314</link>
      <author>learner</author>
      <description>On Feb 10, 4:58=A0pm, &quot;David&quot; &amp;lt;d...@bigcompany.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; learner &amp;lt;learner...@gmail.com&amp;gt; wrote in message &amp;lt;3ad3d647-8b4b-44f7-8a34-=&lt;br&gt;
57874e98d...@z28g2000prd.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; Hi..!&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; I have a matrix of complex numbers, say a matrix of dimension 256x256.&lt;br&gt;
&amp;gt; &amp;gt; I also have a =A0radius,r =3D sqrt((real)^2+(img)^2))i.e the absolute&lt;br&gt;
&amp;gt; &amp;gt; value.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; I want to set all the values of matrix from its center to the radius r&lt;br&gt;
&amp;gt; &amp;gt; equal to another higher =A0 value R. Please help.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; Thank you&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ok, so what have you done so far?&lt;br&gt;
&lt;br&gt;
I only have the image  matrix and r value... I am a beginner... am&lt;br&gt;
still learning ,&lt;br&gt;
but i have set all values above a threshold to a constant value for&lt;br&gt;
the entire matrix..but what i require is to set values within radius r&lt;br&gt;
to the value R.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
F2=3Dabs(F1);&lt;br&gt;
for i=3D1:256&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for j=3D1:256&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if  F2(i,j)&amp;gt;2600&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;F2(i,j)=3D3000;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&lt;br&gt;
Here F1 is a complex matrix got by finding fft of an image of size&lt;br&gt;
256x256.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;Thanks!</description>
    </item>
    <item>
      <pubDate>Tue, 10 Feb 2009 13:37:01 -0500</pubDate>
      <title>Re: choosing particular elements of a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/244187#627322</link>
      <author>David </author>
      <description>learner &amp;lt;learner388@gmail.com&amp;gt; wrote in message &amp;lt;10bf59c3-7738-4dd1-ae69-767561be1569@k36g2000pri.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; On Feb 10, 4:58=A0pm, &quot;David&quot; &amp;lt;d...@bigcompany.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; &amp;gt; learner &amp;lt;learner...@gmail.com&amp;gt; wrote in message &amp;lt;3ad3d647-8b4b-44f7-8a34-=&lt;br&gt;
&amp;gt; 57874e98d...@z28g2000prd.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; Hi..!&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; I have a matrix of complex numbers, say a matrix of dimension 256x256.&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; I also have a =A0radius,r =3D sqrt((real)^2+(img)^2))i.e the absolute&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; value.&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; I want to set all the values of matrix from its center to the radius r&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; equal to another higher =A0 value R. Please help.&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; &amp;gt; Thank you&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; ok, so what have you done so far?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I only have the image  matrix and r value... I am a beginner... am&lt;br&gt;
&amp;gt; still learning ,&lt;br&gt;
&amp;gt; but i have set all values above a threshold to a constant value for&lt;br&gt;
&amp;gt; the entire matrix..but what i require is to set values within radius r&lt;br&gt;
&amp;gt; to the value R.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; F2=3Dabs(F1);&lt;br&gt;
&amp;gt; for i=3D1:256&lt;br&gt;
&amp;gt;      for j=3D1:256&lt;br&gt;
&amp;gt;           if  F2(i,j)&amp;gt;2600&lt;br&gt;
&amp;gt;             F2(i,j)=3D3000;&lt;br&gt;
&amp;gt;           end&lt;br&gt;
&amp;gt;       end&lt;br&gt;
&amp;gt;   end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Here F1 is a complex matrix got by finding fft of an image of size&lt;br&gt;
&amp;gt; 256x256.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  Thanks!&lt;br&gt;
&lt;br&gt;
ok, so add the r calculation to your loop and then when r&amp;lt;something set the matrix value to your R value.</description>
    </item>
    <item>
      <pubDate>Tue, 10 Feb 2009 14:12:02 -0500</pubDate>
      <title>Re: choosing particular elements of a matrix</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/244187#627337</link>
      <author>Johannes Huth</author>
      <description>&lt;br&gt;
&amp;gt; &amp;gt; F2=3Dabs(F1);&lt;br&gt;
&amp;gt; &amp;gt; for i=3D1:256&lt;br&gt;
&amp;gt; &amp;gt;      for j=3D1:256&lt;br&gt;
&amp;gt; &amp;gt;           if  F2(i,j)&amp;gt;2600&lt;br&gt;
&amp;gt; &amp;gt;             F2(i,j)=3D3000;&lt;br&gt;
&amp;gt; &amp;gt;           end&lt;br&gt;
&amp;gt; &amp;gt;       end&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&amp;gt; &amp;gt;   end&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt; Here F1 is a complex matrix got by finding fft of an image of size&lt;br&gt;
&amp;gt; &amp;gt; 256x256.&lt;br&gt;
&amp;gt; &amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;  Thanks!&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; ok, so add the r calculation to your loop and then when r&amp;lt;something set the matrix value to your R value.&lt;br&gt;
&lt;br&gt;
Maybe its better to use logical indexing instead of loops:&lt;br&gt;
F2(F2&amp;gt;2600)=3D3000; % to replace the upper loops&lt;br&gt;
&lt;br&gt;
if you use 'find' your next problem can be solved as easily:&lt;br&gt;
&lt;br&gt;
[row,col] = find(F2&amp;gt;2600);&lt;br&gt;
F2(row,col) = 3D3000; % replaces upper loop&lt;br&gt;
&lt;br&gt;
% now the radius thing...&lt;br&gt;
%Lets say the center point is &lt;br&gt;
c = [128 128];&lt;br&gt;
&lt;br&gt;
% You already got the indicees of all elements of F2 which are grater than 2600 in [row,col]. So make use of it. &lt;br&gt;
% compute the difference between each element an the center point c&lt;br&gt;
vdiff = [row,col]-(ones(numel(row),1)*c);&lt;br&gt;
&lt;br&gt;
% compute the length of each vector element (each row [x y])&lt;br&gt;
diff = sqrt(sum(vdiff.*vdiff,2));&lt;br&gt;
&lt;br&gt;
% find all elements in diff that are smaler than r&lt;br&gt;
idx = diff&amp;lt;r;&lt;br&gt;
&lt;br&gt;
% use idx to set the elements in F2:&lt;br&gt;
F2(row(idx),col(idx)) = whatever;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I didn't try this, but loops in Matlab are rather slow. So maybe you give 'find' a try.&lt;br&gt;
&lt;br&gt;
Regards&lt;br&gt;
Joh</description>
    </item>
  </channel>
</rss>

