У меня очень большой массив ячеек, содержащий множество мер.Как правило, измерения находятся в диапазоне от 3 до 15 метров.Моя проблема в том, что некоторые из этих измерений не имеют этого диапазона, поэтому это недопустимые данные, я хочу удалить этот диапазон данных из моего массива ячеек.
Вот что я попробовал (в резюме):
ind_cond = find(strcmp('Machine',A{:,1}));
A = table2cell(A);
for i = 1:(length(ind_cond)-1);
cond = ismember(A(ind_cond(i):ind_cond(i+1),11),'15');
if cond == 0
A(ind_cond(i):ind_cond(i+1),11) = [];
end
end
Итак, сначала я ищу слово «Машина», потому что оно есть во всех заголовках, поэтому я могу получить общее количество измерений.Затем я пытаюсь найти строку '15' (я конвертирую это позже в num) в диапазоне измерений, и если нет '15', я хочу удалить этот диапазон строк из массива.Я получаю следующую ошибку:
«Нулевое назначение может иметь только один индекс без двоеточия»
Большое спасибо
РЕДАКТИРОВАТЬ:
Воткартина того, как выглядят данные (я не знаю, как их загрузить, это файл .csv, извините)
Важным является столбец 11, вот данные, которые меня интересуют.Проблема, например, в том, что некоторые наборы данных (их много, от 0,25 до 17 метров) являются неполными, потому что у них нет значения «15», поэтому я хочу удалить весь набор данных в этом случае.
Моя первая попытка была сделать что-то вроде этого
for i = 1:(length(ind_cond)-1);
if ind_cond(i+1,1)- ind_cond(i,1) < 30 ;
A(ind_cond(i):ind_cond(i+1),:) = [];
end
end
И это работает хорошо, но это не удаляет все конфликтующие данные, так как у меня есть один (1) очень большой набор данных, который неимеют '15', и условие выше не может устранить его.
На рисунке «Что я хочу удалить» приведен пример того, как конфликтуют данные, и я хочу удалить все эти данные. Обзор данных Что я хочу удалить