Объединить 2 вектора на равные значения времени - PullRequest
0 голосов
/ 31 мая 2018

Я собрал два типа данных.Одним из них является структура Outputs с 3 полями: Outputs.time, Outputs.signals и одно неважное.Outputs.time - это вектор-столбец, содержащий все значения времени (где производится выборка данных), Outputs.signals имеет 15 строк, в каждой строке значения и свойства сигнала (таким образом, всего имеется 15 сигналов).Следовательно, Outputs.signals(i).values имеет то же количество строк, что и Outputs.time.

Теперь у меня есть еще одна таблица с 4 столбцами: LabData.time, LabData.NdBoiler, LabData.NdOutput и неважная.Outputs.time содержит все данные, полученные с компьютера, LabData.time только некоторые измерения, сделанные вручную.Следовательно, Outputs.time намного больше, чем LabData.time, но в определенные моменты времени (где Outputs.time = LabData.time) существуют значения как для Outputs.signals, так и для других столбцов LabData.

Цель состоит в том, чтобы поместить значения LabData.NdBoiler и LabData.NdOutput в Outputs.signals(16) и Outputs.signals(17) для временных выборок, в которых это значение известно.Для других значений Outputs.signals(16) = NaN и Outputs.signals(17) = NaN.Но я не знаю, как это сделать, не могли бы вы мне помочь?

Пример:

Outputs.time = [1; 2; 3; 4; 5];
Outputs.signals(1).values = [1111; 2222; 3333; 4444; 5555]; %and so on for the other signals

LabData.time = [2; 4];
LabData.NdBoiler = [1.23; 1.32];
%% Now the final result should be
Outputs.signals(16).values = [NaN; 1.23; NaN; 1.32; NaN]

1 Ответ

0 голосов
/ 31 мая 2018

Идея состоит в том, чтобы сначала создать вектор из NaN s, после чего вы сопоставляете временные точки, используя ismember для подстановки значений, которые вы знаете.

Outputs.signals(16).values = nan(1,length(Outputs.time)); %Vector of nans
Lia = ismember(Outputs.time,LabData.time); %Where does the times match?
Outputs.signals(16).values(Lia) = LabData.NdBoiler; %substitute
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...