Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для Norwall
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489

Создать ГУ в зависимости от времени

11.04.2015, 22:40. Показов 1793. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Подскажите, как сделать ГУ в зависимости от времени? Суть в чем: есть температуры для каждого месяца в виде таблицы.
Кликните здесь для просмотра всего текста
Matlab M
1
2
T = [-20.7 -21.7 -19.5 -12.9 -5.2 1.9 7.4 6.9 3.4 -3.9 -12.5 -18.1];
t = [31 59 90 120 151 181 212 243 273 304 334 365]*3600*24 %переводим дни в секунды;

Нужно создать такую функцию BC, чтобы в каждый момент времени t можно было найти температуру T. Еще одно условие - это периодичность... Хотелось бы, чтобы эта функция повторялась при достижении шага t(end).
Попробовал интерполировать функцию BC через interp1, но получаю значения в виде NaN.
Вот мои неудачные попытки:
Matlab M
1
2
3
4
5
Tl = [-20.7 -21.7 -19.5 -12.9 -5.2 1.9 7.4 6.9 3.4 -3.9 -12.5 -18.1];
t = [31 59 90 120 151 181 212 243 273 304 334 365]*3600*24;
t_p= linspace(t(1), t(end), tau);
BCl = interp1(Tl,t,t_p);
plot(Tl,t,'ob',t_p,BCl,'g')
С Уважением
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2015, 22:40
Ответы с готовыми решениями:

Как создать звания в браузере в зависимости от количества проведенного за ним времени?
Здравствуйте. Прошу вашего совета. Человек пользуясь браузером получает звания. То есть, 1 час в браузере - звание "Сегодняшний",...

Требуется создать класс Clock, который отображает название времени дня в зависимости от значения переменной, хранящей текущее время.
использование if и if-else, следующий уровень. Требуется создать класс Clock, который отображает название времени дня в зависимости от...

Построить график зависимости координаты от времени x=f(t) и скорости от времени v=f(t) в интервале 0<t<t с шагом дельта t
Задача 2. Уравнение движения точки имеет вид, указанный в таблице 2. Пользуясь уравнением, выполнить следующее: 1) определить координату х0...

10
 Аватар для Krasme
7245 / 5098 / 2151
Регистрация: 02.02.2014
Сообщений: 13,459
11.04.2015, 23:49
про повторение пока не поняла...

графики интерполяции и поиска промежуточной точки
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
clear all;clc;
Tl = [-20.7 -21.7 -19.5 -12.9 -5.2 1.9 7.4 6.9 3.4 -3.9 -12.5 -18.1];
t = [31 59 90 120 151 181 212 243 273 304 334 365]*3600*24;
 
t_p=min(Tl):0.1:max(Tl);
BCl = interp1(Tl,t,t_p);
BCl_spl = interp1(Tl,t,t_p,'spline');
 
xbcl=-10; % точка поиска по линейной интерполяции
bcl = interp1(Tl,t,xbcl);
plot(Tl,t,'ob',t_p,BCl,'g',t_p,BCl_spl,'m',xbcl,bcl,'sk');
1
 Аватар для Norwall
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
12.04.2015, 11:16  [ТС]
Krasme, спасибо! По Вашим советам сделал так:
Matlab M
1
2
3
4
5
6
7
8
clear all;clc;
Tl = [-20.7 -21.7 -19.5 -12.9 -5.2 1.9 7.4 6.9 3.4 -3.9 -12.5 -18.1];
t = [31 59 90 120 151 181 212 243 273 304 334 365]*3600*24;
 
t_p=min(t):0.1:max(t);
BCl_nearest = interp1(t,Tl,t_p,'nearest');
 
plot(t,Tl,'ob',t_p,BCl_nearest,'g');
А про повторение - считаем задачу, например, на 5 лет. У нас есть ГУ на у год. Вот нужно, чтобы при достижении конца года (365*24*3600 секунд) значения из функции BCl начали браться сначала.
0
 Аватар для Krasme
7245 / 5098 / 2151
Регистрация: 02.02.2014
Сообщений: 13,459
12.04.2015, 11:52
с вашим массивом t мой компьютер не справляется, вопит о нехватке памяти, потому использую только количества дней...

повторение цикла..
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clear all;clc;
Tl = [-20.7 -21.7 -19.5 -12.9 -5.2 1.9 7.4 6.9 3.4 -3.9 -12.5 -18.1];
%t = [31 59 90 120 151 181 212 243 273 304 334 365]*3600*24;
t = [31 59 90 120 151 181 212 243 273 304 334 365];
 
year=5;
len=length(t);
for i=0:year-1
    for j=1:len
     t(j+len*i)=t(j)+365*i; % здесь необходим еще множитель под ваш массив t
     Tl(j+len*i)=Tl(j);
    end
 end
  t_p=min(t):max(t);
  BCl_nearest = interp1(t,Tl,t_p,'nearest');
 
plot(t,Tl,'ob',t_p,BCl_nearest,'g');
1
 Аватар для Norwall
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
12.04.2015, 11:54  [ТС]
Krasme, Подскажите, а как вообще к этой функции привязаться? Я в том плане, чтобы BCl_nearest была представлена в виде функции Tl(t) для последующего использования в качестве меняющегося ГУ...
0
 Аватар для Krasme
7245 / 5098 / 2151
Регистрация: 02.02.2014
Сообщений: 13,459
12.04.2015, 11:58
Цитата Сообщение от Norwall Посмотреть сообщение
BCl_nearest была представлена в виде функции Tl(t)
не понимаю...
ждем, что гуру матлаба скажут..
0
 Аватар для Norwall
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
12.04.2015, 12:45  [ТС]
Например, в COMSOL интерполяция представлена в виде:https://yadi.sk/i/W90W8sxhfvb7G
Т.е. там сразу проставляется что от чего зависит... Может, в матлабе есть что-то подобное?
0
 Аватар для Krasme
7245 / 5098 / 2151
Регистрация: 02.02.2014
Сообщений: 13,459
12.04.2015, 12:45
картинки прикрепляйте к сообщению.. "расширенный режим" - кнопка "скрепка"
1
 Аватар для Norwall
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
12.04.2015, 12:48  [ТС]
Пример реализации функции интерполяции в COMSOL:
0
 Аватар для Norwall
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
12.04.2015, 12:50  [ТС]
Krasme, Уф, спасибо Вам большое!
0
 Аватар для Krasme
7245 / 5098 / 2151
Регистрация: 02.02.2014
Сообщений: 13,459
12.04.2015, 12:57
пока вы плясали с бубном вокруг картинки, накидала такой вариант..
сумбурно, но думаю, разберетесь и причешете на свой лад..
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function interpol2()
clear all;clc;
Tl = [-20.7 -21.7 -19.5 -12.9 -5.2 1.9 7.4 6.9 3.4 -3.9 -12.5 -18.1];
%t = [31 59 90 120 151 181 212 243 273 304 334 365]*3600*24;
t = [31 59 90 120 151 181 212 243 273 304 334 365];
year=5;
len=length(t);
for i=0:year-1
    for j=1:len
     t(j+len*i)=t(j)+365*i;
     Tl(j+len*i)=Tl(j);
    end
end
 
x_p1=100;
[bcl_1,bcl_p1,tp]=bcl(Tl,t,x_p1);
 
x_p2=1000:10:1200;
[bcl_2,bcl_p2,tp]=bcl(Tl,t,x_p2);
 
plot(t,Tl,'ob',tp,bcl_1,'g',x_p1,bcl_p1,'*k',x_p2,bcl_p2,'sr');
 
function [BCl_nearest,bcl_xp,t_p] = bcl(Tl,t,xp)
  t_p=min(t):max(t);
  BCl_nearest = interp1(t,Tl,t_p,'nearest');
  bcl_xp=interp1(t,Tl,xp,'nearest');
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.04.2015, 12:57
Помогаю со студенческими работами здесь

зависимости тока от времени
Помогите решить

Работа в зависимости от времени
Подскажите в Delphi можно написать программу которая работала в зависимости от времени?Зарание благодарен.

График зависимости от времени
Доброго времени суток! Подскажите, есть программа сортировки в maple. Нужен график зависимости от времени. Как это сделать? Спасибо. ...

Вывод текста в зависимости от времени
Добрый вечер. Можно ли доработать это скрипт &lt;script language=&quot;JavaScript&quot;&gt; var h=(new Date()).getHours(); if (h &gt; 23...

Построить график зависимости от времени
есть массив чисел 0; 0; 0; 0,60; 1,03; 1,37; 1,64; 1,84; 2,01; 2,13; 2,23; 2,31; 2,37; 2,42; 2,44; 2,07; 2,50; 2,52 и нужно построить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru