<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: MATLAB Basics: Nested functions</title>
	<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/</link>
	<description>Doug Hull is a proud MathWorker who is on a mission to help you with MATLAB.</description>
	<pubDate>Sun, 22 Nov 2009 23:10:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>By: dhull</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-1284</link>
		<dc:creator>dhull</dc:creator>
		<pubDate>Wed, 07 Jan 2009 15:09:02 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-1284</guid>
		<description>@Altino,

This makes me very happy!  I am glad to see you are able to adopt the ideas and improve your code immediately.

Thanks for watching,

Doug</description>
		<content:encoded><![CDATA[<p>@Altino,</p>
<p>This makes me very happy!  I am glad to see you are able to adopt the ideas and improve your code immediately.</p>
<p>Thanks for watching,</p>
<p>Doug</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jack</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-1283</link>
		<dc:creator>Jack</dc:creator>
		<pubDate>Mon, 05 Jan 2009 20:12:03 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-1283</guid>
		<description>managed to get it done long time ago using function handles..don't bother replying...:-)</description>
		<content:encoded><![CDATA[<p>managed to get it done long time ago using function handles..don&#8217;t bother replying&#8230;:-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jack</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-1282</link>
		<dc:creator>Jack</dc:creator>
		<pubDate>Thu, 01 Jan 2009 16:30:27 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-1282</guid>
		<description>Doug,

Happy new year Doug.  To get you prepared for the year ahead, I have an incredibly sexy question which eagerly awaits your touch:

Basically I have one function and within it is a nested function:

function func1()
    ....
    function func2()
        ....
    end
    ....
end

now, within func1 I use another function (non-nested) which I wish to use to mathematically optimise func2.  Now, this gives me error messages, since, it would seem this optimisation function is not able to access func2 since it is a nested function.  

Now, one solution would be for me to make func2 non-nested and write it out in its own separate m-file and then call the optimisation routine from within func1 to optimise the now-non-nested func2.  However, this seems like a non-memory efficient kinda way to  do this as, I am gonna have to pass so many arguments to func2 (which in its previously nested state were accessible directly without the need to pass).

Can you help?  

BTW, can we also use pointers in MATLAB? Or do we always need to get functions to return everything we want?  (Arguments passing by reference etc..)</description>
		<content:encoded><![CDATA[<p>Doug,</p>
<p>Happy new year Doug.  To get you prepared for the year ahead, I have an incredibly sexy question which eagerly awaits your touch:</p>
<p>Basically I have one function and within it is a nested function:</p>
<p>function func1()<br />
    &#8230;.<br />
    function func2()<br />
        &#8230;.<br />
    end<br />
    &#8230;.<br />
end</p>
<p>now, within func1 I use another function (non-nested) which I wish to use to mathematically optimise func2.  Now, this gives me error messages, since, it would seem this optimisation function is not able to access func2 since it is a nested function.  </p>
<p>Now, one solution would be for me to make func2 non-nested and write it out in its own separate m-file and then call the optimisation routine from within func1 to optimise the now-non-nested func2.  However, this seems like a non-memory efficient kinda way to  do this as, I am gonna have to pass so many arguments to func2 (which in its previously nested state were accessible directly without the need to pass).</p>
<p>Can you help?  </p>
<p>BTW, can we also use pointers in MATLAB? Or do we always need to get functions to return everything we want?  (Arguments passing by reference etc..)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ALT</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-810</link>
		<dc:creator>ALT</dc:creator>
		<pubDate>Sat, 07 Jun 2008 11:53:29 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-810</guid>
		<description>Thanks for this video it was very useful.
I was using 3 functions, using global variables, but now its just one function with two nested subfunctions.

You are doing a great job with your videos, they are very helpful especially for beginners like me.

Altino</description>
		<content:encoded><![CDATA[<p>Thanks for this video it was very useful.<br />
I was using 3 functions, using global variables, but now its just one function with two nested subfunctions.</p>
<p>You are doing a great job with your videos, they are very helpful especially for beginners like me.</p>
<p>Altino</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-811</link>
		<dc:creator>Doug</dc:creator>
		<pubDate>Thu, 21 Feb 2008 20:16:54 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-811</guid>
		<description>Adnyana,

It looks like you are spending 22 hours on this one function, but you are calling it so often that each call is 0.001 seconds.  My guess is this is actually quite efficient.  Maybe your algorithm can be changed to call ismember.m less often?  ismember.m has some decisions internally to decide which algorithm to use based on the lengths of the inputs.  You might be able to tweak these.

My other suggestion is this looks like a problem that might call for a computer cluster.  You can really cut down on the time needed by using more computing power.  Check out the Parallel Computing Toolbox.

Doug</description>
		<content:encoded><![CDATA[<p>Adnyana,</p>
<p>It looks like you are spending 22 hours on this one function, but you are calling it so often that each call is 0.001 seconds.  My guess is this is actually quite efficient.  Maybe your algorithm can be changed to call ismember.m less often?  ismember.m has some decisions internally to decide which algorithm to use based on the lengths of the inputs.  You might be able to tweak these.</p>
<p>My other suggestion is this looks like a problem that might call for a computer cluster.  You can really cut down on the time needed by using more computing power.  Check out the Parallel Computing Toolbox.</p>
<p>Doug</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adnyana</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-812</link>
		<dc:creator>adnyana</dc:creator>
		<pubDate>Thu, 21 Feb 2008 05:46:34 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-812</guid>
		<description>ind is scalar, kls and pxl are vectors
yes of course, all of those variables' values are change very often, as stated in my code. kls store indexes of one class of image, pxl store indexes of one region of that class.

here is segment of the code :

function IncludeInRjPixel_1(ind) %horizontal &#38; vertical
global Wr pxl kls rw cpt;
flag = 0;
% cpt = 0;
f = 0;
while cpt index of image matrix
       case 1
           ind = ind + 1;
       case 2
           ind = ind - rw;
       case 3
           ind = ind + rw;
   end;
   if f &#62;=4
       break;
   end;
end;
includePixel(pxl); % calculate average of pixel value of index stored in pxl

this code is called very often until computation is complete

so i can't make this calculation once. so what do you think of this case sir?

thanks sir for your reply

best regard

adnyana</description>
		<content:encoded><![CDATA[<p>ind is scalar, kls and pxl are vectors<br />
yes of course, all of those variables&#8217; values are change very often, as stated in my code. kls store indexes of one class of image, pxl store indexes of one region of that class.</p>
<p>here is segment of the code :</p>
<p>function IncludeInRjPixel_1(ind) %horizontal &amp; vertical<br />
global Wr pxl kls rw cpt;<br />
flag = 0;<br />
% cpt = 0;<br />
f = 0;<br />
while cpt index of image matrix<br />
       case 1<br />
           ind = ind + 1;<br />
       case 2<br />
           ind = ind - rw;<br />
       case 3<br />
           ind = ind + rw;<br />
   end;<br />
   if f &gt;=4<br />
       break;<br />
   end;<br />
end;<br />
includePixel(pxl); % calculate average of pixel value of index stored in pxl</p>
<p>this code is called very often until computation is complete</p>
<p>so i can&#8217;t make this calculation once. so what do you think of this case sir?</p>
<p>thanks sir for your reply</p>
<p>best regard</p>
<p>adnyana</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-809</link>
		<dc:creator>Doug</dc:creator>
		<pubDate>Tue, 19 Feb 2008 13:57:05 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-809</guid>
		<description>Adnyana,

This is great.  Now, all I need to know is "What are the typical values of:

ind
kls
pxl

Are these scalars, vectors, matrices?  What are the typical sizes.  Do the values change often?  If they do not change, can you make these calculations once and then store the value?

Doug</description>
		<content:encoded><![CDATA[<p>Adnyana,</p>
<p>This is great.  Now, all I need to know is &#8220;What are the typical values of:</p>
<p>ind<br />
kls<br />
pxl</p>
<p>Are these scalars, vectors, matrices?  What are the typical sizes.  Do the values change often?  If they do not change, can you make these calculations once and then store the value?</p>
<p>Doug</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adnyana</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-808</link>
		<dc:creator>adnyana</dc:creator>
		<pubDate>Sat, 16 Feb 2008 10:54:43 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-808</guid>
		<description>sorry sir the image not appear, here i try again :

http://img151.imageshack.us/img151/2596/profilersp5.jpg</description>
		<content:encoded><![CDATA[<p>sorry sir the image not appear, here i try again :</p>
<p><a href="http://img151.imageshack.us/img151/2596/profilersp5.jpg" rel="nofollow">http://img151.imageshack.us/img151/2596/profilersp5.jpg</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adnyana</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-807</link>
		<dc:creator>adnyana</dc:creator>
		<pubDate>Sat, 16 Feb 2008 10:38:37 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-807</guid>
		<description>yes sir, i've run profiler on this code.
but the most time was spent on the 'ismember' function.

is there other way or other function that run faster than 'ismember'.

i use 'ismember' function to check if one set of data is member of other set, like this :

  ismember(ind,kls)== 1 &#38;&#38; ismember(ind,pxl) == 0

thanks a lot sir for helping me

best regard

adnyana</description>
		<content:encoded><![CDATA[<p>yes sir, i&#8217;ve run profiler on this code.<br />
but the most time was spent on the &#8216;ismember&#8217; function.</p>
<p>is there other way or other function that run faster than &#8216;ismember&#8217;.</p>
<p>i use &#8216;ismember&#8217; function to check if one set of data is member of other set, like this :</p>
<p>  ismember(ind,kls)== 1 &amp;&amp; ismember(ind,pxl) == 0</p>
<p>thanks a lot sir for helping me</p>
<p>best regard</p>
<p>adnyana</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug</title>
		<link>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-806</link>
		<dc:creator>Doug</dc:creator>
		<pubDate>Fri, 15 Feb 2008 17:58:29 +0000</pubDate>
		<guid>http://blogs.mathworks.com/videos/2008/02/01/matlab-basics-nested-functions/#comment-806</guid>
		<description>Adnyana,

I think that you would want to run the profiler on this code, it will tell you where the slow parts are.  From there, we could figure out how to speed it up.

profiler:
http://blogs.mathworks.com/pick/2006/10/19/profiler-to-find-code-bottlenecks/

Doug</description>
		<content:encoded><![CDATA[<p>Adnyana,</p>
<p>I think that you would want to run the profiler on this code, it will tell you where the slow parts are.  From there, we could figure out how to speed it up.</p>
<p>profiler:<br />
<a href="http://blogs.mathworks.com/pick/2006/10/19/profiler-to-find-code-bottlenecks/" rel="nofollow">http://blogs.mathworks.com/pick/2006/10/19/profiler-to-find-code-bottlenecks/</a></p>
<p>Doug</p>
]]></content:encoded>
	</item>
</channel>
</rss>
