我正在尝试找到一种使两个列表长度相同的方法。如何将零添加到一个列表以使其与第一个列表具有相同的长度?
即list1=[1 2 3 4 5];list2=[ 1 2 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
。
这是您知道 list2 比 list1 短的情况的单行代码
list2(numel(list1)) = 0;
假设您不知道这两个列表中哪个更大。您可以执行以下操作:
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