• Регистрация
Михаил_206
Михаил_206 0.00
н/д

Редактирование массива данных в Matlab

01.09.2020

Всем доброго дня!

При вычислении дисперсии сигнала в Matlab Simulink столкнулись со следующей задачей:

Имеется массив данных в виде матрицы 10000x2, 10000x3 и т.д., где первый столбец - время с шагом около 0.01 с, второй и следующие столбцы - значения сигнала. В начале (и иногда в конце) сигнал искажен переходным процессом. Хотим это исправить:

1. Удалить верхние строки матрицы - чтобы остались строки, начиная с n-ой (1<n<10000).

2. или удалить верхние строки, которые соответствуют времени от 0 до t.

3. Удалить нижние строки, начиная с m, чтобы матрица стала размером m-1x2 или m-1x3...

Задачи перечислил в порядке убывания важности.

На предыдущем форуме находил решение с обрезкой столбцов, но самостоятельно не смог изменить код: http://matlab.exponenta.ru/forum/matlab-matlab-f1/obrezanie-massiva-t10929.html

Буду благодарен за любую подсказку!

Спасибо!

Теги

    01.09.2020

    Ответы

    • aBoomest
      aBoomest+942.89
      1.09.2020 11:23

      X(100000000,3)

      1. X = X(n:10000000,:)
      2. 
      3. X = X(n:m,:)

      PS: недавно был тут оформлен что-то типа FAQ где были красочно и кратко расписаны действия с массиывами. Поищите.

      • aBoomest
        aBoomest+942.89
        1.09.2020 11:25
        • Centurio
          Centurio+42.00
          1.09.2020 22:51

          A=A(n:end,:); % оставить строки в матрице А, начиная с n-ой

          A=A(1:m-1,:); % убрать строки в матрице А, начиная с m-ой

          • Михаил_206
            Михаил_2060.00
            2.09.2020 09:38

            Спасибо за ответы!