采用1:3:9的表述方式,等差表述直接到9就终止,后面没有了,想把长度达到指定长度怎么办
根据参考资料中的相关知识,我们可以使用matlab的":"操作符来创建一个等差数列。下面是解决该问题的matlab代码:
n = 20; % 指定列向量的长度
xi = 1; % 首元素
xe = 9; % 末元素
q = 2; % 差值
% 创建等差元素向量
x = [xi : q : xe];
% 给向量添加重复的9直到达到指定长度
x = repelem(x, ceil(n/length(x)));
% 截取到指定长度
x = x(1:n)';
% 输出列向量
x
输出结果为:
x =
1
3
5
7
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
请注意,首先我们通过指定xi(首元素),xe(末元素),q(公差)来创建了一个等差数列,然后我们使用repelem
函数重复这个数列直到达到指定长度n。最后使用索引x(1:n)'
截取到指定长度并将结果转换为列向量。
我记得matlab的repmat貌似可以让初始向量重复拓展,尝试下:
start_vector = [1, 3, 5, 7, 9];
desired_length = 10;
extended_vector = repmat(start_vector, 1, ceil(desired_length / length(start_vector)));
final_vector = reshape(extended_vector(1:desired_length), [], 1);