2

2つのリストを同じ長さにする方法を見つけようとしています。1つのリストにゼロを追加して、最初のリストと同じ長さにするにはどうすればよいですか?

すなわちlist1=[1 2 3 4 5]; list2 = [1 2 3]

4

3 に答える 3

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

于 2011-04-17T22:55:06.540 に答える
2

これは、list2がlist1よりも短いことがわかっている場合のワンライナーです。

list2(numel(list1)) = 0;
于 2011-04-19T02:05:11.530 に答える
1

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
于 2011-04-17T23:05:44.717 に答える