<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265250</link>
    <title>MATLAB Central Newsreader - Doubly Linked Lists of objects</title>
    <description>Feed for thread: Doubly Linked Lists of objects</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>Sat, 07 Nov 2009 18:28:01 -0500</pubDate>
      <title>Doubly Linked Lists of objects</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265250#692912</link>
      <author>rebecca donnelly</author>
      <description>Hi,&lt;br&gt;
I am a first year PhD student and am implementing the image processing algorithm &quot;Seeded Region Growing&quot; as an exercise to help me get to grips with Matlab and to gain a deeper understanding of the algorithm.&lt;br&gt;
&lt;br&gt;
The paper asks for a datastructure they call a &quot;Sequentially Sorted List&quot;, it needs to hold an object which contains the x and y coordinates of a pixel and another value called Sigma which the list is sorted by.&lt;br&gt;
&lt;br&gt;
I attempted to do this using the following code:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;% Calculate sigma and create a new pxladrs object &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sigma_value = abs(seg_img(x+1, y) - mean_gl);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p = pxladrs(sigma_value);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% Add x and y coords to pxladrs object&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.Xvalue = x+1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.Yvalue = y;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;% Add object to SSL&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if counter==0&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;ssl_start = dlnode(p);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&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;cur = ssl_start;&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;% Insert ordered by sigma value&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;while cur ~= 0&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if p.Sigma &amp;lt; cur.Data.Sigma &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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_insert = dlnode(p);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssl_insert.insertBefore(cur);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cur = cur.Next;&lt;br&gt;
&lt;br&gt;
However this didn't work as I couldn't store the pxladrs object in the doubly linked list. &lt;br&gt;
&lt;br&gt;
Error:&lt;br&gt;
??? Undefined function or method 'dlnode' for input arguments of&lt;br&gt;
type 'pxladrs'.&lt;br&gt;
Error in ==&amp;gt; SeededRegionGrowing at 58&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;ssl_start = dlnode(p);&lt;br&gt;
&lt;br&gt;
So my question is; How do I modify the doubly linked list so it can handle objects? Or am I going about this totally the wrong way?&lt;br&gt;
&lt;br&gt;
Any comments appriciated,&lt;br&gt;
Rebecca</description>
    </item>
    <item>
      <pubDate>Sat, 07 Nov 2009 20:56:01 -0500</pubDate>
      <title>Re: Doubly Linked Lists of objects</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265250#692930</link>
      <author>Matt Fetterman</author>
      <description>&quot;rebecca donnelly&quot; &amp;lt;rdonnelly10@qub.ac.uk&amp;gt; wrote in message &amp;lt;hd4e7h$ak2$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Hi,&lt;br&gt;
&amp;gt; I am a first year PhD student and am implementing the image processing algorithm &quot;Seeded Region Growing&quot; as an exercise to help me get to grips with Matlab and to gain a deeper understanding of the algorithm.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; The paper asks for a datastructure they call a &quot;Sequentially Sorted List&quot;, it needs to hold an object which contains the x and y coordinates of a pixel and another value called Sigma which the list is sorted by.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I attempted to do this using the following code:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  % Calculate sigma and create a new pxladrs object &lt;br&gt;
&amp;gt;         sigma_value = abs(seg_img(x+1, y) - mean_gl);&lt;br&gt;
&amp;gt;         p = pxladrs(sigma_value);&lt;br&gt;
&amp;gt;         % Add x and y coords to pxladrs object&lt;br&gt;
&amp;gt;         p.Xvalue = x+1;&lt;br&gt;
&amp;gt;         p.Yvalue = y;&lt;br&gt;
&amp;gt;         % Add object to SSL&lt;br&gt;
&amp;gt;         if counter==0&lt;br&gt;
&amp;gt;             ssl_start = dlnode(p);&lt;br&gt;
&amp;gt;         else&lt;br&gt;
&amp;gt;             cur = ssl_start;&lt;br&gt;
&amp;gt;             % Insert ordered by sigma value&lt;br&gt;
&amp;gt;             while cur ~= 0&lt;br&gt;
&amp;gt;                 if p.Sigma &amp;lt; cur.Data.Sigma &lt;br&gt;
&amp;gt;                     ssl_insert = dlnode(p);&lt;br&gt;
&amp;gt;                     ssl_insert.insertBefore(cur);&lt;br&gt;
&amp;gt;                     break&lt;br&gt;
&amp;gt;                 end&lt;br&gt;
&amp;gt;          end&lt;br&gt;
&amp;gt;                 cur = cur.Next;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; However this didn't work as I couldn't store the pxladrs object in the doubly linked list. &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Error:&lt;br&gt;
&amp;gt; ??? Undefined function or method 'dlnode' for input arguments of&lt;br&gt;
&amp;gt; type 'pxladrs'.&lt;br&gt;
&amp;gt; Error in ==&amp;gt; SeededRegionGrowing at 58&lt;br&gt;
&amp;gt;             ssl_start = dlnode(p);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; So my question is; How do I modify the doubly linked list so it can handle objects? Or am I going about this totally the wrong way?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Any comments appriciated,&lt;br&gt;
&amp;gt; Rebecca&lt;br&gt;
&lt;br&gt;
I think you have to define the dlnode object as described in the documentation, it is not a built-in Matlab object.&lt;br&gt;
&lt;br&gt;
classdef dlnode &amp;lt; handle&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;properties&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Data&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;end &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;properties (SetAccess = private)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Next&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Prev&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;end</description>
    </item>
    <item>
      <pubDate>Tue, 10 Nov 2009 11:10:19 -0500</pubDate>
      <title>Re: Doubly Linked Lists of objects</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265250#693458</link>
      <author>rebecca donnelly</author>
      <description>No thanks to you lot I have solved the problem. &lt;br&gt;
&lt;br&gt;
All that needed to be done was to copy the @dlnode folder to the root folder of the m file which need to use it.</description>
    </item>
  </channel>
</rss>

