Compensate the vector with the last entry
2 次查看(过去 30 天)
显示 更早的评论
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
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?
采纳的回答
更多回答(1 个)
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]
y = paddata(x, 7, Side = 'trailing', Pattern = 'edge')
Or to show FillValue with a different value:
y = paddata(x, 7, Side = 'trailing', FillValue = -999)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!