Добавление нулей в список - PullRequest
2 голосов
/ 18 апреля 2011

Я пытаюсь найти способ составить два списка одинаковой длины.Как я могу добавить нули в один список, чтобы он имел одинаковую длину с первым?

т.е. list1 = [1 2 3 4 5];list2 = [1 2 3]

Ответы [ 3 ]

3 голосов
/ 18 апреля 2011

Есть много способов сделать это. Одним из них является

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.

2 голосов
/ 19 апреля 2011

Вот одна строка для случая, когда вы знаете, что list2 короче list1

list2(numel(list1)) = 0;
1 голос
/ 18 апреля 2011

Предполагая, что вы не знаете, какой из двух списков больше.Вы можете сделать следующее:

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
...