2つのリストを同じ長さにする方法を見つけようとしています。1つのリストにゼロを追加して、最初のリストと同じ長さにするにはどうすればよいですか?
すなわちlist1=[1 2 3 4 5]; list2 = [1 2 3]
あなたがそれをすることができる多くの方法があります。それらの1つは
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;
2つのリストのどちらが大きいかわからないと仮定します。次のことができます。
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