Compensate the vector with the last entry

I have a length L vector contains some numbers, I want to compensate this vector to length K, where K > L, with repeating the last entry of the vector. For example, the vector is [2 4 7 3], after compensate, it will be [2 4 7 3 3 3 3 3]. I hope there is an efficient way to do so because I actually have more than 10^4 vectors to compensate.
Thanks,

댓글 수: 2

Stephen23
Stephen23 2023년 4월 25일
"I hope there is an efficient way to do so because I actually have more than 10^4 vectors to compensate."
Do you really have 1e4 separate vectors stored in the workspace? How did you get them all there?
DDDD
DDDD 2024년 7월 31일
sorry for the ambiguity. I have a loop around 10^4 times, where within each loop I will need compensate the vector :)

댓글을 달려면 로그인하십시오.

 채택된 답변

Stephen23
Stephen23 2023년 4월 25일
V = [2,4,7,3];
K = 8;
V(end+1:K) = V(end)
V = 1×8
2 4 7 3 3 3 3 3

추가 답변 (1개)

Steven Lord
Steven Lord 2024년 7월 31일
If you were using release R2023b or later, you could use the paddata function with the Side name-value argument and either the FillValue name-value argument or the Pattern name-value argument with the 'edge' pattern.
x = [2 4 7 3]
x = 1x4
2 4 7 3
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
y = paddata(x, 7, Side = 'trailing', Pattern = 'edge')
y = 1x7
2 4 7 3 3 3 3
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Or to show FillValue with a different value:
y = paddata(x, 7, Side = 'trailing', FillValue = -999)
y = 1x7
2 4 7 3 -999 -999 -999
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

릴리스

R2022b

태그

질문:

2023년 4월 25일

답변:

2024년 7월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by