MATLAB Answers

0

Multiple one variable many parameter plots

Asked by Allison Miller on 11 Jun 2019
Latest activity Answered by Allison Miller on 11 Jun 2019
If I have a
function compare(varargin)
for loop i = 1:3:length(varargin)
height = varargin{i};
width = varargin{i+1};
length = varargin{i+2};
%add to same height plot
%add to same width plot
%add to same length plot
end
end
each user input parameter has height width and length, is there a way to make three separate plots with one plot having only height but all parameters' height, one plot having only width but all parameters' width, and one plot having only length but all parameters' length? I've tried a series of figure and hold on/off but can't seem to find a way to continue plotting back to the first or second plot.

  1 Comment

Adam
on 11 Jun 2019
figure, axes and plot creation all return a handle to the object just created. If you keep hold of these then you can plot things (or edit existing plots) exactly where you want to
e.g.
hFigWidth = figure; hAxesWidth = gca;
hWidthPlot = plot( hAxesWidth,... );
Not necessarily the best way to organise the variables, but it's an example at least.
Also, as shown above, plotting instructions allow you to specify the axes explicitly. Likewise hold also does, e.g.
hold( hAxesWidth, 'on' );

Sign in to comment.

Tags

2 Answers

Answer by Allison Miller on 11 Jun 2019
 Accepted Answer

I figured it out myself, I added this to the for loop:
figure(1)
plot(height,'o');
hold on
figure(2)
plot(width,'o');
hold on
figure(3)
plot(length,'o');
hold on
thanks for the suggestions!

  0 Comments

Sign in to comment.



I didn't understood whats your input. I hope this function will be accepted if I understood what you are looking.
function compare(varargin)
for ii = 1:3:length(varargin)
height(ii) = varargin{ii};
width(ii) = varargin{ii+1};
length1(ii) = varargin{ii+2};
end
figure
plot(height)
figure
plot(width)
figure
plot(length1)
end

  0 Comments

Sign in to comment.