MATLAB Answers


How can I plot 2 vectors of different length?

Asked by Jonathan Bijman on 12 Jun 2019
Latest activity Commented on by Star Strider
on 12 Jun 2019
Hello everyone
It could be the question sounds stupid, but I have 32 data (which correspond to averages of 9 measurements) and I want to plot along aprox 50 days
(Because there weren´t measurements some days)
Anyone has an idea of how can I do that? I was thinking by scatter, but appears the same error (different lenghts)
Thank u


Sign in to comment.

2 Answers

Answer by Star Strider
on 12 Jun 2019
 Accepted Answer

Without knowing any constraints you may have, try this:
data = rand(1, 32); % Create Data Vector
x = linspace(0, 50, numel(data)); % Create Independent Variable Vector
plot(x, data)
If your data were calculated with respect to specific days, use a vector of those days as ‘x’. So long as there are exactly 32 of them, you can easily plot them.


Show 1 older comment
Thank u so much both of u (@Walter Roberson and @Star Strider)
Our pleasures!

Sign in to comment.

Answer by Walter Roberson
on 12 Jun 2019

You know which days had valid measurements. Pass the time coordinate corresponding to those days as the "x" coordinate to plot, if you want a line plot that draws between the missing data.
stem() plot might make sense in some cases.
It is possible to draw in segments. For that purpose, pass in nan as the y coordinates for the missing measurements, and be sure to include a marker type. You want the marker because you might have patterns such as NaN Point NaN and plot() will only draw a line when there are at least two finite points in a row.

  1 Comment

For "y" variable I have this:
nrow = height(datatable);
lastidx = floor(nrow/9) * 9;
Voc_p = mean(reshape(datatable{1:lastidx,7}, 9, []));
it results 32 data
For "x" variable I create a table with all the dates and load the mat file:
When I try to plot with stem:
Appears this error:
Error using stem (line 43)
X must be same length as Y.
Error in Prueba_1 (line 34)

Sign in to comment.