Я хотел бы удалить все столбцы, в которых третья строка содержит нулевые значения в моем наборе данных.
Например:
original_data = [1 2 3 4 5; 1 2 3 4 5; 0 0 0 1 2]
Для первых трех столбцов (с нулями в третьей строке) я хотел бы создать новый массив, в котором удаляются столбцы с нулями в третьей строке, чтобы получить результат:
new_data = [ 4 5; 4 5; 1 2]
Мне также нужен массив индексов столбцов ненулевых значений в исходном массиве.
Например:
original_indices = [4, 5]
Я старался:
dados_teste = dados_out_15;
dados_p6 = [];
[m,n] = size(dados_teste)
for i = 1:n
if dados_teste(3:i) == 0;
dados_p6 = dados_teste(:,i)
else
dados_p6 = dados_teste(:,n)
end
end
Но это явно не работает ...
1 ответ
Я бы применил функцию find () для поиска всех ненулевых индексов, а затем применил бы матричную индексацию для создания нового массива, который содержит только столбцы, соответствующие ненулевым индексам в третьей строке.
Sample_Array = [20 30 40 50; 30 20 70 90; 0 2 1 2];
%Grabbing the third row of the matrix%
Third_Row = Sample_Array(3,:);
%Finding all the non-zero indices%
[Non_Zero_Indices] = find(Third_Row);
%Using matrix indices to generate a new array based on the non-zero
%indicies%
New_Matrix = Sample_Array(:,Non_Zero_Indices);
%Printing matrices%
Sample_Array
New_Matrix
Non_Zero_Indices
Похожие вопросы
Новые вопросы
arrays
Массив - это упорядоченная линейная структура данных, состоящая из набора элементов (значений, переменных или ссылок), каждый из которых идентифицируется одним или несколькими индексами. Когда вы спрашиваете о конкретных вариантах массивов, используйте вместо них следующие связанные теги: [vector], [arraylist], [matrix]. При использовании этого тега в вопросе, относящемся к языку программирования, пометьте вопрос используемым языком программирования.
randi
или около того. Покажите свой вклад и ожидаемый результат. Объясните, что делает ваш код, по сравнению с ожидаемым результатом. Прочтите stackoverflow.com/help/how-to-ask для получения дополнительных разъяснений.