Matlab добавление в вектор - PullRequest
       3

Matlab добавление в вектор

0 голосов
/ 15 февраля 2012
 clear all
    data = rand(8760,1);
    n=366;
    time=linspace(1+1/24,n,(n-1)*24)';
        %day of year
    daylims = ([100,300]);

    [row1]=find(time > daylims(1) & time < daylims(2));

Из приведенного выше примера я пытаюсь выбрать данные для периода e, заданного «дневными лимитами», а затем вписать эти данные в вектор, соответствующий «времени». Найдя номер строки для данных, которые мне нужны, все, что я сейчас пытаюсь сделать, - это окружить «данные» nans, например. первая строка 2377, так что я хочу сделать строку 1: 2377 как NAN, а последняя строка 7175, поэтому я хочу сделать строка 7175: конец как nan (конец 8760).

Это легко сделать, перемещая значения вручную, но я надеялся на большее эффективный метод. Дайте мне знать, если мне не ясно.

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Я часто делаю это так:

good_data = (time > daylims(1) & time < daylims(2)); 
data(~good_data)=NaN;

Примечание. Вместо этого я использую не поиск, а логическое индексирование.

0 голосов
/ 15 февраля 2012

Вы пробовали этот подход?

data(1 : 2377) = nan;
data(7175 : end) = nan;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...