Passing variables to plot function

I have the following plot function
plot([2,7],[3,3],'lineWidth', 40);
Instead of [2,7], I want to pass two variables d1 and d2 that has a set of values stored in it. Can someone please help me with that?

Answers (2)

Well, it would seem pretty straightforward,
plot(d1,d2,'lineWidth', 40);
assuming X, Y values are in d1, d2, respectively, and they're the same length vectors.
See
doc plot % for details on using it

2 Comments

Thanks a lot! but the Y value is constant. The two values in X are stored as array of values in two variables. If suppose d1 and d2 has arrays of values then, passing them would look like
plot([d1,d2],[3,3],'lineWidth', 40);
I am sure this won't work!
I'm sure I don't understand from the description. What are the sizes of the various variables and what do you actually want plotted?
The general answer is that plot expects an X and Y array of commensurate length; if vectors orientation doesn't matter. You can do whatever manipulations you need with the variables to build the desired X and Y, plot doesn't care how you write the arrays as long as it is valid syntax that could be written to store the result as a variable.

Sign in to comment.

let see it what you want
>> d1=[1 3 5 6] % create a vector as x for plot
d1 =
1 3 5 6
>> d2=[4 5 0 10] % create a vector as y for plot
d2 =
4 5 0 10
>> plot(d1,d2,'lineWidth', 40);
do not use [] in d1 and d2
here is the output plot,

5 Comments

I have the plot function like this
plot([1464120.8,1464269.5],[3,3],'lineWidth', 40);
plot([1465045.5,1465177.7],[3,3],'lineWidth', 40);
and I have several values for [X]. So instead of typing all the values inside [], I have all the values stored in d1 and d2. The [Y] value is constant i.e. [3,3]. Since I have all the values for X stored in d1 and d2, I want to pass it like this
plot([d1,d2],[3,3],'lineWidth', 40);
Is it possible to do that?
Not much interesting in a plot in which all the y values are the same; it'll just be a horizontal line; the locations of x will be immaterial.
But, the size of the two vectors X and Y must be the same as above so you'd need
plot([d1 d2],3*ones(1,length(d1)+length(d2)),'linewidth',40)
to draw the line with those points.
In order to store multiple value of d1, d2 you can use for loop.
Define before some vectors (either one of them is remain unchanged) and then in plot function use them as input x,y.
I think you want to plot multiple plots of different vector? Will you please tell me what are your d1,d2? I shall give you quick approch
Hari
Hari on 15 Apr 2016
Edited: Hari on 15 Apr 2016
I am actually done with it now!! This is my code
d1=xlsread('datafile.xlsx','R69:R76');
d2=xlsread('datafile.xlsx','T69:T76');
plot([d1,2],[3,3],'lineWidth', 40,'color',[1 0 0]);
Thanks a lot!
good then please accept answer for reputation.

Sign in to comment.

Categories

Find more on Graphics Performance in Help Center and File Exchange

Asked:

on 13 Apr 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!