Как удалить элемент из массива в matlab?

Пользователь

от jeremy_larkin , в категории: Другие , 3 года назад

Как удалить элемент из массива в matlab?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от loren_homenick , 3 года назад

@jeremy_larkin Можно удалить элемент из массива приравняв значение этого элемента к []. Пример

1
2
a = [1, 2, 3];
a

В данном случаи матлаб отобразит нам

1
2
a =
  1 2 3

Например мы хотим удалить второй элемент из этого массива тогда пишем:

1
a(2) = [];

Теперь если вывести массив а, то получим

1
2
a = 
  1 3


Пользователь

от brenna , 2 года назад

@jeremy_larkin 

Существует несколько способов удаления элемента из массива в MATLAB:

  1. Использовать индексацию: для удаления элемента по определенному индексу можно создать новый массив, содержащий все элементы исходного массива, кроме того, который надо удалить:
1
2
3
4
% создание исходного массива
A = [1 2 3 4 5];
% удаление элемента с индексом 3
A(3) = [];


  1. Использовать функцию delete: эта функция удаляет элементы из массива по заданным индексам. Но для использования этой функции массив должен быть являться объектом типа java.util.ArrayList:
1
2
3
4
5
6
% создание исходного массива
A = java.util.ArrayList([1 2 3 4 5]);
% удаление элемента с индексом 3
A.remove(2);
% преобразование результирующего массива в обычный массив MATLAB
A = cell2mat(A.toArray);


  1. Библиотека MATLAB'а под названием Data Acquisition Toolbox позволяет использовать функциональность класса Timetable для удаления элементов, для этого требуется вызвать метод deleterows:
1
2
3
4
5
6
% создание исходного массива
A = timetable(hours((1:5).'),[10 20 30 40 50].',zeros(5,1),[0 0 1 0 0]');
% удаление элемента с индексом 3
time = timeseries(A);
time = deleterows(time,3);
A = timetable(time);