Как я могу удалить элементы массива в MATLAB?

Следующий код выполняется, но я понятия не имею, как удалить элементы массива в MATLAB.

И поэтому Массив1 и Массив2 выписываются с прежними данными.

MATLAB версии R2017b

global Array1
global Array2
filename = 'data.xlsx';
for i = 1:3
    sheet = i
    for j = (1:2)-1
        one = [1];
        two = [2];
        Array1 = [Array1; one]
        Array2 = [Array2; two]      
    end
    xlswrite(filename, Array1, sheet, 'A1');
    xlswrite(filename, Array2, sheet, 'B1');
    %here I would like to delete the elements of Array1 and Array2global 
    %Array1 = [];
    %Array2 = [];
end 
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
0
49
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Массив1 (индекс) = []

Просто вставьте индекс (ы) массива, который вы хотите удалить.

Каждый раз, когда я увеличивается, я хотел бы сбросить Array1 и Array2.

NPP 31.05.2019 06:29
Ответ принят как подходящий

Вы можете перезаписать Array1 пустым массивом, чтобы удалить все его элементы: Array1 = []. Вы должны сделать это либо в верхней, либо в нижней части вашего внешнего цикла:

filename = 'data.xlsx';
for sheet = 1:3
    Array1 = [];
    Array2 = [];
    for j = 0:1
        one = 1;
        two = 2;
        Array1(end+1) = one;
        Array2(end+1) = two;   
    end
    xlswrite(filename, Array1, sheet, 'A1');
    xlswrite(filename, Array2, sheet, 'B1');
end 

Я также немного изменил ваш код для лучших практик. Некоторые из них также рекомендуются редактором MATLAB (ищите красные подчеркивания и наведите на них указатель мыши, чтобы получить подсказки). Я рекомендую вам посмотреть на различия с вашим кодом. В частности, старайтесь избегать глобальных переменных!

Но поскольку вы знаете, сколько элементов будет в этом случае у Array1, гораздо лучше (быстрее) использовать предварительно выделить, а не назначать пустой массив, а затем добавлять элементы в конце. Например:

Array1 = zeros(N,1);
for j = 1:N
   Array1(j) = j-1;
end

Другие вопросы по теме