У меня есть datset, который начинается примерно следующим образом:MATLAB работает с длинными временными рядами
year month daynum hour depth wtemp
1989 5 136 0 0.01 14.32
1989 5 136 0 0.5 14.32
1989 5 136 0 1 13.52
1989 5 136 0 2 12.31
1989 5 136 0 3 10.16
1989 5 136 0 4 8.61
1989 5 136 0 6 6.86
1989 5 136 0 8 6.03
1989 5 136 0 10 5.45
1989 5 136 1 0.01 13.38
1989 5 136 1 0.5 13.41
1989 5 136 1 1 13.12
1989 5 136 1 2 10.88
1989 5 136 1 3 10.09
1989 5 136 1 4 9.09
1989 5 136 1 6 7.24
1989 5 136 1 8 6.45
1989 5 136 1 10 5.67
1989 5 136 2 0.01 13.2
1989 5 136 2 0.5 13.24
1989 5 136 2 1 13.24
1989 5 136 2 2 11.07
1989 5 136 2 3 10.14
1989 5 136 2 4 9.02
1989 5 136 2 6 7.23
1989 5 136 2 8 6.23
1989 5 136 2 10 5.59
1989 5 136 3 0.01 13.11
1989 5 136 3 0.5 13.15
1989 5 136 3 1 13.11
1989 5 136 3 2 11.26
1989 5 136 3 3 10.25
1989 5 136 3 4 9.2
1989 5 136 3 6 6.99
1989 5 136 3 8 5.96
1989 5 136 3 10 5.5
Этот набор данных содержит более 1000000 строк данных. когда я импортирую данные в matlab, я остаюсь с этой структурой (хотя без заголовков). Я хотел бы знать, как я мог бы вернуть индексы для минимальной и максимальной глубины (т. Е. Столбца 5) для каждого отдельного периода времени?
Ответ в этом случае было бы что-то вроде:
1,9
10,18,
and so on.
Имейте в виду, что число измерений и, следовательно, количество глубины будет меняться на протяжении всего периода исследования, поэтому я придется использовать информацию в год, месяц, день, час и глубину.
Основная цель здесь - построить матрицу, содержащую только температуру, зарегистрированную на минимальной и максимальной глубине для каждого часа.
До сих пор я пытался (данные название матрицы):
[~,~,b] = unique(data(:,1:4),'rows');
MaxMin_temp = [abs(accumarray(b,data(:,end),[],@min)), abs(accumarray(b,data(:,end),[],@max))];
, которая возвращает температуру на минимальной и максимальной глубины для каждого отдельного дня. Из этого я надеялся на более сложный способ получения всех столбцов для этих значений.
Что вы пробовали? Вы недавно задали множество вопросов о Matlab, вы постепенно получаете SO, чтобы научить вас, что вы узнали, что вы можете внести в сообщество? –
Я задал 3 вопроса через 2 недели. Это неприемлемо? Я вообще не предлагаю свои попытки в этом вопросе, я думал, что вопрос с длинными волосами отпугнул бы людей от ответа на него, но если мне нужно показать свои попытки, это достаточно справедливо. – KatyB
Да, скорость, с которой вы задаете вопросы, вполне приемлема. Но, спрятав ваши собственные усилия, чтобы ответить на ваши вопросы, вы предлагаете яркие комментарии, такие как мои (выше), которые обвиняют вас в том, что вы недостаточно стараетесь, прежде чем спрашивать о том, чтобы помочь. Так любит трюк, единственный способ показать нам, что вы один такой и поэтому любите, - это показать нам, что вы пробовали. Проведите некоторое время, оглядываясь вокруг, особенно на вопросы, которые получают хорошие ответы. –