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

조회 수: 35 (최근 30일)
Alessandro Longo
Alessandro Longo 2017년 11월 24일
댓글: Shuntao Ji 2018년 7월 28일
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