Это сообщение следует за предыдущий вопрос относительно реструктуризации матрицы:переформатирования матрицы в MATLAB с нан значения
Дополнительной проблемой сталкиваюсь демонстрируется на следующем примере:
depth = [0:1:20]';
data = rand(1,length(depth))';
d = [depth,data];
d = [d;d(1:20,:);d];
Здесь я хотел бы изменить эту матрицу так, чтобы каждый столбец представлял определенную глубину, и каждая строка представляет времени, поэтому в итоге у меня будет 3 строки (т. дней) и 21 столбец (т. е. измерение на каждой глубине). Однако мы не можем изменить это, потому что количество измерений за данный день не одинаково, то есть некоторые из них отсутствуют. Это известно:
dd = sortrows(d,1);
for i = 1:length(depth);
e(i) = length(dd(dd(:,1)==depth(i),:));
end
Из 'e' мы обнаруживаем, что количество глубин различно для разных дней. Как я мог вставить nan в матрицу, чтобы каждый день имел одинаковые значения глубины? Сначала я смог найти уникальные глубины:
уникальный (d (:, 1)) Из-за отсутствия глубины (от уникальной) в течение заданного дня я хотел бы вставить глубину в правильное положение и вставьте нан в соответствующее место в столбце данных. Как это можно достичь?