<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/259614</link>
    <title>MATLAB Central Newsreader - Handle 2 axes at a time...</title>
    <description>Feed for thread: Handle 2 axes at a time...</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>Fri, 28 Aug 2009 19:03:59 -0400</pubDate>
      <title>Handle 2 axes at a time...</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/259614#676608</link>
      <author>JDK_3</author>
      <description>Hi guys,&lt;br&gt;
I am trying to make a GUI in MATLAB that plots two graphs(say a sine&lt;br&gt;
wave  and 2nd is its shifted version).&lt;br&gt;
But I am unable to plot them differently on two different axes.&lt;br&gt;
&lt;br&gt;
Here is the piece of code:&lt;br&gt;
&lt;br&gt;
S.ax1 = axes('xlim',[0 1],'ylim',[0 1]);&lt;br&gt;
%define axes1&lt;br&gt;
set(S.ax1,'unit','pix','position',[50 325 570 250]);&lt;br&gt;
&lt;br&gt;
S.ax2 = axes('xlim',[0 1],'ylim',[0 1]);&lt;br&gt;
%define axes2&lt;br&gt;
set(S.ax2,'unit','pix','position',[50 60 570 250]);&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
function [] = push_call(varargin)&lt;br&gt;
&lt;br&gt;
S = varargin{3};&lt;br&gt;
P = get(S.pop,'val');             %get value of popup menu 'pop'&lt;br&gt;
&lt;br&gt;
switch P&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes(S.ax1);&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;x = -5:0.01:5;&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;y = sin(x);&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;plot(x,y);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch findobj(get&lt;br&gt;
(S.select_option,'selectedobject'))                    %get selected&lt;br&gt;
radio button&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;case S.advance&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;axes(S.ax2);&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;x = -5:0.01:5;&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;y = sin(x+2);&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;plot(x,y);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I am getting an error&lt;br&gt;
&lt;br&gt;
&amp;gt;Reference to non-existent field 'ax1'.&lt;br&gt;
&amp;gt;Error in ==&amp;gt; plot_1&amp;gt;push_call at 67   axes(S.ax1);&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
please help me, or say where i am wrong.&lt;br&gt;
thanks in advance</description>
    </item>
    <item>
      <pubDate>Fri, 28 Aug 2009 20:17:19 -0400</pubDate>
      <title>Re: Handle 2 axes at a time...</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/259614#676629</link>
      <author>matt dash</author>
      <description>JDK_3 &amp;lt;jaydu1904@gmail.com&amp;gt; wrote in message &amp;lt;0bafa2ba-ed9b-4487-a6a2-a1aaa64b54da@d15g2000prc.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; Hi guys,&lt;br&gt;
&amp;gt; I am trying to make a GUI in MATLAB that plots two graphs(say a sine&lt;br&gt;
&amp;gt; wave  and 2nd is its shifted version).&lt;br&gt;
&amp;gt; But I am unable to plot them differently on two different axes.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Here is the piece of code:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; S.ax1 = axes('xlim',[0 1],'ylim',[0 1]);&lt;br&gt;
&amp;gt; %define axes1&lt;br&gt;
&amp;gt; set(S.ax1,'unit','pix','position',[50 325 570 250]);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; S.ax2 = axes('xlim',[0 1],'ylim',[0 1]);&lt;br&gt;
&amp;gt; %define axes2&lt;br&gt;
&amp;gt; set(S.ax2,'unit','pix','position',[50 60 570 250]);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; function [] = push_call(varargin)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; S = varargin{3};&lt;br&gt;
&amp;gt; P = get(S.pop,'val');             %get value of popup menu 'pop'&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; switch P&lt;br&gt;
&amp;gt;     case 1&lt;br&gt;
&amp;gt;        axes(S.ax1);&lt;br&gt;
&amp;gt;                 x = -5:0.01:5;&lt;br&gt;
&amp;gt;                 y = sin(x);&lt;br&gt;
&amp;gt;                 plot(x,y);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;         switch findobj(get&lt;br&gt;
&amp;gt; (S.select_option,'selectedobject'))                    %get selected&lt;br&gt;
&amp;gt; radio button&lt;br&gt;
&amp;gt;             case S.advance&lt;br&gt;
&amp;gt;                 axes(S.ax2);&lt;br&gt;
&amp;gt;                 x = -5:0.01:5;&lt;br&gt;
&amp;gt;                 y = sin(x+2);&lt;br&gt;
&amp;gt;                 plot(x,y);&lt;br&gt;
&amp;gt;         end&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I am getting an error&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &amp;gt;Reference to non-existent field 'ax1'.&lt;br&gt;
&amp;gt; &amp;gt;Error in ==&amp;gt; plot_1&amp;gt;push_call at 67   axes(S.ax1);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&lt;br&gt;
After defining S.ax1 and S.ax2 in your initial code, do you call guidata to store these values? You need to do that. Something like guidata(gcf,S).</description>
    </item>
    <item>
      <pubDate>Fri, 28 Aug 2009 20:26:03 -0400</pubDate>
      <title>Re: Handle 2 axes at a time...</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/259614#676631</link>
      <author>Matt Fig</author>
      <description>I would be willing to bet that you set the callback to the pushbutton before S.ax1 was created.  When you are programming by storing all info in a structure S, you need to assign callbacks that take S as an argument AFTER all needed fields of S have been set.  See the added line below.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
S.ax1 = axes('xlim',[0 1],'ylim',[0 1]);&lt;br&gt;
%define axes1&lt;br&gt;
set(S.ax1,'unit','pix','position',[50 325 570 250]);&lt;br&gt;
&lt;br&gt;
S.ax2 = axes('xlim',[0 1],'ylim',[0 1]);&lt;br&gt;
%define axes2&lt;br&gt;
set(S.ax2,'unit','pix','position',[50 60 570 250]);&lt;br&gt;
&lt;br&gt;
set(push,'callback',{@push_call,S})    % ADDED AFTER S.ax1, S.ax2 are created!!!!&lt;br&gt;
&lt;br&gt;
function [] = push_call(varargin)&lt;br&gt;
&lt;br&gt;
S = varargin{3};&lt;br&gt;
P = get(S.pop,'val'); %get value of popup menu 'pop'&lt;br&gt;
&lt;br&gt;
switch P&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axes(S.ax1);&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;x = -5:0.01:5;&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;y = sin(x);&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;plot(x,y);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch findobj(get&lt;br&gt;
(S.select_option,'selectedobject')) %get selected&lt;br&gt;
radio button&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;case S.advance&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;axes(S.ax2);&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;x = -5:0.01:5;&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;y = sin(x+2);&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;plot(x,y);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end</description>
    </item>
  </channel>
</rss>

