How can I add 'ones' until I get a length of 7 digits
1 次查看(过去 30 天)
显示 更早的评论
I have a vector consisting on < 1 x 3 double > that I would like to add ones until the seventh value is reached.
The variable input is this:
x = [1,2,3];
I want this vector:
x = 1 2 3 1 1 1 1 % length of 7
I can't type the 'ones' directly. I am looking for a code that automatically takes any vector of length less than 7 and add values of 'ones' until the seventh value is reached.
Can you please help?
0 个评论
回答(3 个)
Image Analyst
2012-9-3
编辑:Image Analyst
2012-9-3
If you know for a fact that x is less than 7 long, and you want to stuff the new array back into x, you can do this:
x = [x, ones(1, 7 - length(x))];
The code below is more robust in that it will work for x's both less than 7 long, and longer than 7. If x is longer than 7 this crops the x so that the final array is only 7 long, but you could tack on the whole thing and get the longer array (full and complete x) if you wanted to by just eliminating the else block.
x = [1,2,3];
tempx = x;
lengthOfx = length(tempx)
x = ones(1, 7);
if lengthOfx <=7
x(1:lengthOfx) = tempx
else
x = tempx(1:7)
end
0 个评论
Star Strider
2012-9-3
My variations in terms of anonymous functions:
V7 = @(x) [x (length(x) < 7)*ones(1, 7-length(x))];
Vn = @(x,n) [x (length(x) < n)*ones(1, n-length(x))];
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Biomedical Imaging 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!