How to increase elements of a vector without changing its plot?

30 次查看(过去 30 天)
Hello forum, I have a vector of x elements (57x1) that I would expand to a y-size vector (3000, for example) but without changing its plot (it is a particular stairs plot). Any idea on how to do it?

回答(2 个)

Jan
Jan 2017-11-24
编辑:Jan 2017-11-24
What about a "nearest" interpolation?
Y = interp1(1:length(X), X, linspace(1, length(X), 3000), 'nearest')
Then Y contains only values of X, but sampled with a higher frequency. Another simpler approach:
t = round(linspace(1, length(X), 3000));
Y = X(t);

KL
KL 2017-11-24
If you have
X = rand(57,1); %57 elements
if you want to have 3000 elements now,
X(end+1:end+3000,1) = rand(3000,1);
if you only want to plot the first 57 elements,
plot(X(1:57,1))
  2 个评论
Alessandro Longo
Alessandro Longo 2017-11-24
But the shape changes. I tried to plot X(1:57,1) and X, there are two different shapes. In particular, I need this plot, that is defined by a vector of 57 elements (so my X is 57x1), but defined by a vector of 3000 elements (so X 3000x1 but the same plot!)
KL
KL 2017-11-24
编辑:KL 2017-11-24
I'm not clear with what do you mean. Please show me how you create these vectors.
If you want to create more number of elements between the same limits, use linspace.
x_57 = linspace(1,30,57);
x_3000 = linspace(1,30,3000);
if you want to "append" more elements to the first vector ( x_57), then
x_57_new = [x_57 newVector]

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by