<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/154591</link>
    <title>MATLAB Central Newsreader - Best way to loop through unknown structure</title>
    <description>Feed for thread: Best way to loop through unknown structure</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2008 by The 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>The MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Wed, 15 Aug 2007 09:05:40 -0400</pubDate>
      <title>Best way to loop through unknown structure</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/154591#387830</link>
      <author>Karl Trumstedt</author>
      <description>Here is what I am using right now. I am wondering if there &lt;br&gt;
is any other way to do it. Say that I want to convert each &lt;br&gt;
structure field to one regular variable. What is the best &lt;br&gt;
method do you think?&lt;br&gt;
&lt;br&gt;
x = struct(...)&lt;br&gt;
&lt;br&gt;
if isstruct(x)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s = fieldnames(x);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for i=1:length(s)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assignin('caller', char(s(i)), x.(char(s(i)));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
/ Karl&lt;br&gt;
Developer @ Lundin Mining AB &lt;br&gt;
&lt;a href="http://www.lundinmining.com/index.php"&gt;http://www.lundinmining.com/index.php&lt;/a&gt; &lt;br&gt;
Developer @ Kolonn AB &lt;a href="http://www.kolonn.se"&gt;http://www.kolonn.se&lt;/a&gt; &lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 15 Aug 2007 09:19:35 -0400</pubDate>
      <title>Re: Best way to loop through unknown structure</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/154591#387831</link>
      <author>Titus</author>
      <description>&lt;br&gt;
"Karl Trumstedt" &amp;lt;karltru@gmail.com&amp;gt; schrieb im Newsbeitrag &lt;br&gt;
news:f9ufl4$tb$1@fred.mathworks.com...&lt;br&gt;
&amp;gt; Here is what I am using right now. I am wondering if there&lt;br&gt;
&amp;gt; is any other way to do it. Say that I want to convert each&lt;br&gt;
&amp;gt; structure field to one regular variable. What is the best&lt;br&gt;
&amp;gt; method do you think?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; x = struct(...)&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; if isstruct(x)&lt;br&gt;
&amp;gt;    s = fieldnames(x);&lt;br&gt;
&amp;gt;    for i=1:length(s)&lt;br&gt;
&amp;gt;        assignin('caller', char(s(i)), x.(char(s(i)));&lt;br&gt;
&amp;gt;    end&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; / Karl&lt;br&gt;
&amp;gt; Developer @ Lundin Mining AB&lt;br&gt;
&amp;gt; &lt;a href="http://www.lundinmining.com/index.php"&gt;http://www.lundinmining.com/index.php&lt;/a&gt;&lt;br&gt;
&amp;gt; Developer @ Kolonn AB &lt;a href="http://www.kolonn.se"&gt;http://www.kolonn.se&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Hi,&lt;br&gt;
the only suggestion I would have is to use a simpler call&lt;br&gt;
into the cell arrays:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assignin('caller', s{i}, x.(s{i}));&lt;br&gt;
but that's all. Perhaps you could tell us, why you would&lt;br&gt;
need something like that?&lt;br&gt;
&lt;br&gt;
Titus&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 15 Aug 2007 09:27:43 -0400</pubDate>
      <title>Re: Best way to loop through unknown structure</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/154591#387832</link>
      <author>Karl Trumstedt</author>
      <description>"Titus" &amp;lt;titus.edelhofer@mathworks.de&amp;gt; wrote in message &lt;br&gt;
&amp;lt;f9ugf5$9v2$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; "Karl Trumstedt" &amp;lt;karltru@gmail.com&amp;gt; schrieb im &lt;br&gt;
Newsbeitrag &lt;br&gt;
&amp;gt; news:f9ufl4$tb$1@fred.mathworks.com...&lt;br&gt;
&amp;gt; &amp;gt; Here is what I am using right now. I am wondering if &lt;br&gt;
there&lt;br&gt;
&amp;gt; &amp;gt; is any other way to do it. Say that I want to convert &lt;br&gt;
each&lt;br&gt;
&amp;gt; &amp;gt; structure field to one regular variable. What is the &lt;br&gt;
best&lt;br&gt;
&amp;gt; &amp;gt; method do you think?&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; x = struct(...)&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; if isstruct(x)&lt;br&gt;
&amp;gt; &amp;gt;    s = fieldnames(x);&lt;br&gt;
&amp;gt; &amp;gt;    for i=1:length(s)&lt;br&gt;
&amp;gt; &amp;gt;        assignin('caller', char(s(i)), x.(char(s(i)));&lt;br&gt;
&amp;gt; &amp;gt;    end&lt;br&gt;
&amp;gt; &amp;gt; end&lt;br&gt;
&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt; &amp;gt; / Karl&lt;br&gt;
&amp;gt; &amp;gt; Developer @ Lundin Mining AB&lt;br&gt;
&amp;gt; &amp;gt; &lt;a href="http://www.lundinmining.com/index.php"&gt;http://www.lundinmining.com/index.php&lt;/a&gt;&lt;br&gt;
&amp;gt; &amp;gt; Developer @ Kolonn AB &lt;a href="http://www.kolonn.se"&gt;http://www.kolonn.se&lt;/a&gt;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Hi,&lt;br&gt;
&amp;gt; the only suggestion I would have is to use a simpler call&lt;br&gt;
&amp;gt; into the cell arrays:&lt;br&gt;
&amp;gt;         assignin('caller', s{i}, x.(s{i}));&lt;br&gt;
&amp;gt; but that's all. Perhaps you could tell us, why you would&lt;br&gt;
&amp;gt; need something like that?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Titus&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
Hi,&lt;br&gt;
I'm mostly just experimenting :) Always nice to have more &lt;br&gt;
matlab knowledge ;)&lt;br&gt;
&lt;br&gt;
I also have a "few" structs with data that I would like to &lt;br&gt;
make available for the user to use in the interactive &lt;br&gt;
plotting tool. I haven't really played around with it, so &lt;br&gt;
it might be possible to use the structs to plot, making it &lt;br&gt;
unnecessary to convert the structs.&lt;br&gt;
&lt;br&gt;
Cheers&lt;br&gt;
/ Karl&lt;br&gt;
Developer @ Lundin Mining AB&lt;br&gt;
&lt;a href="http://www.lundinmining.com/index.php"&gt;http://www.lundinmining.com/index.php&lt;/a&gt;&lt;br&gt;
Developer @ Kolonn AB &lt;a href="http://www.kolonn.se"&gt;http://www.kolonn.se&lt;/a&gt;&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 15 Aug 2007 19:51:08 -0400</pubDate>
      <title>Re: Best way to loop through unknown structure</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/154591#387880</link>
      <author>Loren Shure</author>
      <description>In article &amp;lt;f9ufl4$tb$1@fred.mathworks.com&amp;gt;, karltru@gmail.com says...&lt;br&gt;
&amp;gt; Here is what I am using right now. I am wondering if there &lt;br&gt;
&amp;gt; is any other way to do it. Say that I want to convert each &lt;br&gt;
&amp;gt; structure field to one regular variable. What is the best &lt;br&gt;
&amp;gt; method do you think?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; x = struct(...)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; if isstruct(x)&lt;br&gt;
&amp;gt;     s = fieldnames(x);&lt;br&gt;
&amp;gt;     for i=1:length(s)&lt;br&gt;
&amp;gt;         assignin('caller', char(s(i)), x.(char(s(i)));&lt;br&gt;
&amp;gt;     end&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; / Karl&lt;br&gt;
&amp;gt; Developer @ Lundin Mining AB &lt;br&gt;
&amp;gt; &lt;a href="http://www.lundinmining.com/index.php"&gt;http://www.lundinmining.com/index.php&lt;/a&gt; &lt;br&gt;
&amp;gt; Developer @ Kolonn AB &lt;a href="http://www.kolonn.se"&gt;http://www.kolonn.se&lt;/a&gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
See this blog post today on looping through non-numeric arrays:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.mathworks.com/loren/2007/08/15/iterating-over-non-numeric-"&gt;http://blogs.mathworks.com/loren/2007/08/15/iterating-over-non-numeric-&lt;/a&gt;&lt;br&gt;
values/&lt;br&gt;
&lt;br&gt;
I think you have an extra level of indexing that you can do without.&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
Loren&lt;br&gt;
&lt;a href="http://blogs.mathworks.com/loren/"&gt;http://blogs.mathworks.com/loren/&lt;/a&gt;&lt;br&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 15 Aug 2007 20:34:23 -0400</pubDate>
      <title>Re: Best way to loop through unknown structure</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/154591#387885</link>
      <author>us</author>
      <description>Karl Trumstedt:&lt;br&gt;
&amp;lt;SNIP wants to infest his/her clean workspace with numerous &lt;br&gt;
field data...&lt;br&gt;
&lt;br&gt;
one of the (unconventional) solutions&lt;br&gt;
&lt;br&gt;
% the data&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.a=1:5;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.b=pi;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.c=magic(4);&lt;br&gt;
% the engine&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fnam='foo.mat'; % &amp;lt;- use your own test file!&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;save(fnam,'-struct','s');&lt;br&gt;
% the result&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clear a b c s; % !&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;load(fnam);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c&lt;br&gt;
&lt;br&gt;
us&lt;br&gt;
</description>
    </item>
  </channel>
</rss>
