У меня есть массив ячеек, в котором некоторые элементы имеют две точки данных. Я хочу усреднить два данных, если данные были собраны в тот же день.MATLAB Cell Array - Средние два значения, если другой столбец соответствует
Первый столбец «сайт» ячейки - это дата. Четвертая колонка - это концентрация данных. Я хочу усреднить четвертый столбец, если данные поступают с того же дня.
Например, если мой массив ячеек выглядит следующим образом:
01/01/2011 36-061-0069 1 10.4
01/01/2011 36-061-0069 2 10.1
01/04/2011 36-061-0069 1 7.9
01/05/2011 36-061-0069 1 13
Я хочу усреднить четвертый столбец (10.4 и 10.1) в один ряд и оставить все остальное то же самое.
Помощь? Будет ли цикл ifififif? Я не уверен, как подойти к этой проблеме, тем более, что массивы ячеек работают немного иначе, чем матрицы.
К чему относятся ii и jj? Я пытаюсь использовать ваш код, так как кажется, что это именно то, что мне нужно, но я не могу сделать vertcat, потому что мои ii и jj теперь имеют разную длину. ii и n имеют одинаковую длину, а jj больше. У моего массива данных нет кавычек (''). Не знаю, имеет ли это значение. – shizishan
Это нормально, что ii и jj имеют разную длину. ii содержит индексы даты без повторений, а jj содержит все даты, указывающие, что они повторяются. Какую ошибку вы получаете? И как у вас данных нет котировок? Разве это не массив ячеек со строками в первых двух столбцах? –
@ user2258883 Другое дело: какую версию Matlab вы используете? Лоток меняет '~' именем фиктивной переменной, таким как 'aux' –