Presentation is loading. Please wait.

Presentation is loading. Please wait.

Форматы числовых данных Задается с помощью команды или функции format Имеются следующие аргументы: – short - четыре знака после запятой. – long – 15 знаков.

Similar presentations


Presentation on theme: "Форматы числовых данных Задается с помощью команды или функции format Имеются следующие аргументы: – short - четыре знака после запятой. – long – 15 знаков."— Presentation transcript:

1 Форматы числовых данных Задается с помощью команды или функции format Имеются следующие аргументы: – short - четыре знака после запятой. – long – 15 знаков для double и семь знаков для single Другие аргументы – shortG, longG – наиболее удобочитаемый формат числа

2 Результат выполнения разных форматов

3 Пакет Financial Toolbox Основной экономический пакет MatLab. В этом разделе рассматриваются приемы использования средств Financial Toolbox для решения модельных задач предметной области. Вопросы, связанные с адекватностью моделей, условий их применимости или справедливости гипотез относительно состояния финансовых рынков и аналогичные вопросы выходят за рамки данного раздела. Более того, применение средств пакета в некоторых случаях может приводить к неверным результатам с точки зрения бизнес-приложений. Проблема анализа полученных данных и их дальнейшего применения лежит на пользователе пакета и требует дополнительного экономического образования. Дополнительные пакеты: Financial Derivative Toolbox, Fixed- Income Toolbox

4 Работа с датами MatLab представляет даты в своем внутреннем представлении. Для получения данного представления следует воспользоваться командой now. Результат вывода такой команды: десятичное число: – Целая часть – номер дня после 01 января 0000 г. (от р. Х.) – Дробная часть – время, отсчитанное от полуночи текущего дня.

5 Обращение к now >> format longG >> now ans = 734804.871996979 Таким образом в момент создания слайда был 734804 день и 0.871996979 часть 24 часов.

6 Человеческое представление дат Текстовый формат Представление даты в виде строчки. Строчка может иметь различные представления: – год-месяц-число – год-месяц-число часы-минуты-секунды – квартал-год – и другие Функция для получения текстового предствления datestr(inner_format, type) – inner_format – внутреннее представление – type – тип представления

7 >> n=now; >> datestr(n, 0) ans = 28-Oct-2011 21:25:52 >> datestr(n, 1) ans = 28-Oct-2011 >> datestr(n, 2) ans = 10/28/11 >> datestr(n, 17) ans = Q4-11 >> datestr(n, 18) ans = Q4 >> datestr(n, 5) ans = 10 >> datestr(n, 6) ans = 10/28 >> datestr(n, 7) ans = 28 >> datestr(n, 8) ans = Fri >> datestr(n, 9) ans = F >> datestr(n, 10) ans = 2011 >> datestr(n, 11) ans = 11 >> datestr(n, 12) ans = Oct11 >> datestr(n, 13) ans = 21:25:52 >> datestr(n, 14) ans = 9:25:52 PM

8 Человеческое представление дат Числовой формат Для получения числовой (или векторной) записи даты используется функция datavec: – Vector_format=datavec(inner_format {/ text_format}) – [yyyy, mmm, dd, hh, mm, ss]=datavec(……) В первом случае результат будет записан в массив Vector_format размерности 6 Во втором случае результат будет записан в указанные переменные. Не все текстовые форматы можно привести к числовому.

9 >> n=now; >> str=datestr(n, 0) str = 28-Oct-2011 21:42:40 >> vec=datevec(n) vec = Columns 1 through 3 2011 10 28 Columns 4 through 6 21 42 40.9400024414063 >> vec=datevec(str) vec = 2011 10 28 21 42 40 >> str=datestr(n, 5) str = 10 >> vec=datevec(str) ??? Error using ==> datevec at 280 Cannot parse date 10. >> str=datestr(n, 2) str = 10/28/11 >> vec=datevec(str) vec = 2011 10 28 0 0 0 >> str=datestr(n, 17) str = Q4-11 >> vec=datevec(str) ??? Error using ==> datevec at 216 Failed to lookup month of year.

10 >> n=now; >> [year, month, day, hour, minute, second]=datevec(n) year = 2011 month = 10 day = 28 hour = 21 minute = 47 second = 12.0139999389648 >> str=datestr(n, 1) str = 28-Oct-2011 >> [year, month, day, hour, minute, second]=datevec(str) year = 2011 month = 10 day = 28 hour = 0 minute = 0 second = 0

11 Вычисление интервалов между датами В MatLab интервалы между датами вычисляются с помощью функции number_of_days=daysdif(start, final, basis) start – начальная дата final – конечная дата basis – базовый период

12 Базовый период расчета интервала между датами Количество дней, попадающих между двумя датами зависит от календаря. Базовый период и представляет такие календари. basis=0 – дней в году фактическое (365 или 366), дней в месяце фактическое (28, 29, 30 или 31) basis=1 – дней в году 360, дней в месяце 30 basis=2 – дней в году 360, дней в месяце фактическое basis=3 – дней в году 365, дней в месяце фактическое Всего имеется 13 различных вариантов

13 >> str1=datestr(n, 1) str1 = 28-Oct-2011 >> str2='28-Apr-2011'; >> datenum(str2) ans = 734621 >> number=daysdif(str1, str2, 0) number = -183 >> number=daysdif(str2, str1, 0) number = 183 >> number=daysdif(str2, str1, 1) number = 180 >> str2='01-Jan-2010'; >> str1='01-Jan-2011'; >> number=daysdif(str2, str1, 2) number = 365 >> number=daysdif(str2, str1, 3) number = 365

14 Выходные дни В файл-функции holidays.m определены нерабочие дни с 01 января 1885 года до 31 декабря 2030 года для Нью-Йоркской фондовой биржи.

15 Элемент листинга holidays.m 734520 ;... % 17-Jan-2011 Martin Luther King, Jr. Day (Mon) 734555 ;... % 21-Feb-2011 Washington's Birthday (Mon) 734615 ;... % 22-Apr-2011 Good Friday (Fri) 734653 ;... % 30-May-2011 Memorial Day (Mon) 734688 ;... % 04-Jul-2011 Independence Day (Mon) 734751 ;... % 05-Sep-2011 Labor Day (Mon) 734831 ;... % 24-Nov-2011 Thanksgiving (Thu) 734863 ;... % 26-Dec-2011 Monday after Christmas (Mon) 734870 ;... % 02-Jan-2012 Monday after New Year's Day (Mon) 734884 ;... % 16-Jan-2012 Martin Luther King, Jr. Day (Mon)

16 Вычисление рабочих дней Вычислив праздники, можно посчитать их количество. После этого можно воспользоваться функцией wrkdydif(start, final, holiday) для вычисления рабочих дней между двумя датами start и final.

17 >> str1='28-Oct-2011'; >> str2='20-Jan-2012'; >> number=daysdif(str1, str2) number = 84 >> hd=holidays(str1, str2) hd = 734831 734863 734870 734884 >> hd=datestr(holidays(str1, str2)) hd = 24-Nov-2011 26-Dec-2011 02-Jan-2012 16-Jan-2012 >> n=length(hd) n = 11 >> wd=wrkdydif(str1, str2, n) wd = 50 >> hd=holidays(str1, str2) hd = 734831 734863 734870 734884 >> n=length(hd) n = 4 >> wd=wrkdydif(str1, str2, n) wd = 57

18 Последний день в месяце MatLab позволяет вычислить дату последнего в месяце дня недели. Для этого используется команда lweekdate(weekday, year, month) weekday – день, который ищется. Задается целым числом от 1 до 7, начиная с воскресенья и заканчивая субботой. year – четырех-значное целое число month – целое число от 1 до 12

19 >> year=2011; >> month=10; >> day=4; >> date=lweekdate(day, year, month) date = 734802 >> datestr(date) ans = 26-Oct-2011 >> year=[2011, 2012, 2013]; >> date=lweekdate(day, year, month) date = 734802 735173 735537 >> datestr(date) ans = 26-Oct-2011 31-Oct-2012 30-Oct-2013


Download ppt "Форматы числовых данных Задается с помощью команды или функции format Имеются следующие аргументы: – short - четыре знака после запятой. – long – 15 знаков."

Similar presentations


Ads by Google