我试图找到一种方法来使两个列表具有相同的长度。如何将零添加到一个列表中,以使其与第一个列表具有相同的长度?
即。 list1 = [1 2 3 4 5]; list2 = [1 2 3]
答案 0 :(得分:3)
有很多方法可以做到这一点。其中之一是
list3 = zeros(size(list1)); %# create an array of the same shape as list1
list3(1:numel(list2)) = list2(:); %# fill in the elements defined in list2
另一种方式是
list3 = [list2, zeros(1,length(list1)-length(list2))];
这两种方式都假设list2
比list1
短。
答案 1 :(得分:2)
如果你知道list2比list1
更短,那么这是一个单行list2(numel(list1)) = 0;
答案 2 :(得分:1)
假设您不知道两个列表中哪一个更大。您可以执行以下操作:
dif = size(l2)-size(l1);
if dif(2) < 0
l2 = [l2, zeros(1, -dif(2))];
else
l1 = [l1, zeros(1, dif(2))];
end
(这适用于八度)
l1 = list1
l2 = list2