Scilab - для цикла - поиск совпадающих точек данных - из матриц разной длины - ошибка индекса - PullRequest
0 голосов
/ 03 сентября 2018

В Scilab я пытаюсь найти точки данных (время), которые соответствуют, а затем проиндексировать эти точки (a1 непрерывный, a2 дискретные события). Я могу использовать этот индекс для выбора точек данных из других наборов данных, чтобы затем я мог анализировать данные на основе дискретных событий (a2).

Приведенный ниже код дает мне «индексную ошибку» в этой строке, если a1 (i) == a2 (j); '

    a1 = [1,2,3,4,5,6,7,8,9,10,11,12,13]
    a2 = [3,4,6,8,10,12]

    x = 0

    for i = x:length(a1);
        for j = 0:length(a2);
            if a1(i) == a2(j);
                disp(x)
            end
        end
    end

Если есть какие-либо опытные пользователи Scilab, которые могут помочь, это будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Пожалуйста, посмотрите на функцию пересечения. Эффективно выполняет именно то, что вы хотите

0 голосов
/ 04 сентября 2018

Я обнаружил проблему. Недопустимый индекс был вызван тем, что матрица не имеет нулевого индекса.

a1 = [1,2,3,4,5,6,7,8,9,10,11,12,13]
a2 = [3,4,6,8,10,12]

x = 1;

for i = 1:13;
        for j = x:6;
        if a1(i) == a2(j);
            disp(a2(j))
            x = j
        end
    end
end
...