Десятичные градусы = градусы + минуты/60 + секунды/3600.
Минуты и секунды перевести в секунды и в ISO 8601 формат времени
Добрый день/вечер/утро ув. знатоки php. Возник вопрос: time содержит в себе длительность (минуты и.
Как перевести секунды в часы, минуты и секунды
Помогите составить программу, которая будет переводить секунды (произвольное целое число) в часы.
Как перевести секунды в часы:минуты:секунды?
Задача: Электронные часы показывают время в формате h:mm:ss, то есть сначала записывается.
В прошлый раз мы с вами переводили долготы из формата [0 360] в формат [-180 180]. Сегодня мы разберёмся ещё с одной проблемой, которая периодически встречается в работе океанолога да и вообще любого географа.
Широты и долготы принято измерять в градусах, в одном градусе 60 минут, а в одной минуте 60 секунд, секунды обычно записывают уже десятичной дробью, что намного удобнее. А ещё удобнее взять и сразу записать всё просто в градусах, а десятичной дробью записывать всё что меньше градуса и никаких минут и секунд.
Т.е. вместо 20°30′ записывать 20.5°, или вместо 40°59’59» записывать 40.9997°. Если вы не штурман, а датасайнтист, то в большинстве случаев так намного удобнее. Однако данные иногда приходят нам с координатами, записанными в разных форматах. Конечно, с пересчётом из одного формата в другой справится даже школьник, однако в MATLAB эти лишние телодвижения никчему, так как есть родная функция, которая сделает всё за вас. Вернее говоря, это несколько функций. Первая, dm2degrees переводит координаты из формата «градусы-минуты» в градлусы. Для её работы необходимо иметь матрицу, состоящую из двух столбцов, в первом столбце указаны градусы (только целые числа), во втором минуты (можно с десятыми долями), например:
В итоге, скормив эту матрицу функции dm2degrees, вы получите:
Конечно, если у вас данные записаны не в одной переменной, а в двух разных, то проблем тоже не возникнет:
Если ваши данные представлены в формате «градусы — минуты — секунды», то вам нужна будет другая функция dms2degrees. Работает она практически также, только на вход ей нужна теперь матрица состоящая из трёх столбцов (градусы, минуты, секунды). Грубо говоря, вам нужно будет записать dm2degrees([lat_d, lat_m, lat_s]).
Есть и обратные функции degrees2dm и degrees2dms, которые конвертируют всё обратную сторону.
MatLab содержит в себе все распространенные математические функции, которые доступны по их имени при реализации алгоритмов. Например, функция sqrt() позволяет вычислять квадрат числа и может быть использована в программе следующим образом:
Аналогичным образом вызываются и все другие математические функции, представленные в табл. 1.2.
Таблица 1.2. Основные математические функции MatLab
sqrt(x) | вычисление квадратного корня |
exp(x) | возведение в степень числа e |
pow2(x) | возведение в степень числа 2 |
log(x) | вычисление натурального логарифма |
log10(x) | вычисление десятичного логарифма |
log2(x) | вычисление логарифма по основанию 2 |
sin(x) | синус угла x, заданного в радианах |
cos(x) | косинус угла x, заданного в радианах |
tan(x) | тангенс угла x, заданного в радианах |
cot(x) | котангенс угла x, заданного в радианах |
asin(x) | арксинус |
acos(x) | арккосинус |
atan(x) | арктангенс |
pi | число пи |
round(x) | округление до ближайшего целого |
fix(x) | усечение дробной части числа |
floor(x) | округление до меньшего целого |
ceil(x) | округление до большего целого |
mod(x) | остаток от деления с учётом знака |
sign(x) | знак числа |
factor(x) | разложение числа на простые множители |
isprime(x) | истинно, если число простое |
rand | генерация псевдослучайного числа с равномерным законом распределения |
randn | генерация псевдослучайного числа с нормальным законом распределения |
abs(x) | вычисление модуля числа |
Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:
Ниже показан пример задания вектора с именем a, и содержащий значения 1, 2, 3, 4:
a = [1 2 3 4]; % вектор-строка
Для доступа к тому или иному элементу вектора используется следующая конструкция языка:
disp( a(1) ); % отображение значения 1-го элемента вектора
disp( a(2) ); % отображение значения 2-го элемента вектора
disp( a(3) ); % отображение значения 3-го элемента вектора
disp( a(4) ); % отображение значения 4-го элемента вектора
т.е. нужно указать имя вектора и в круглых скобках написать номер индекса элемента, с которым предполагается работать. Например, для изменения значения 2-го элемента массива на 10 достаточно записать
a(2) = 10; % изменение значения 2-го элемента на 10
Часто возникает необходимость определения общего числа элементов в векторе, т.е. определения его размера. Это можно сделать, воспользовавшись функцией length() следующим образом:
N = length(a); % (N=4) число элементов массива а
Если требуется задать вектор-столбец, то это можно сделать так
a = [1; 2; 3; 4]; % вектор-столбец
b = [1 2 3 4]’; % вектор-столбец
при этом доступ к элементам векторов осуществляется также как и для векторов-строк.
Следует отметить, что векторы можно составлять не только из отдельных чисел или переменных, но и из векторов. Например, следующий фрагмент программы показывает, как можно создавать один вектор на основе другого:
a = [1 2 3 4]; % начальный вектор a = [1 2 3 4]
b = [a 5 6]; % второй вектор b = [1 2 3 4 5 6]
Здесь вектор b состоит из шести элементов и создан на основе вектора а. Используя этот прием, можно осуществлять увеличение размера векторов в процессе работы программы:
a = [a 5]; % увеличение вектора а на один элемент
Недостатком описанного способа задания (инициализации) векторов является сложность определения векторов больших размеров, состоящих, например, из 100 или 1000 элементов. Чтобы решить данную задачу, в MatLab существуют функции инициализации векторов нулями, единицами или случайными значениями:
a1 = zeros(1, 100); % вектор-строка, 100 элементов с
% нулевыми значениями
a2 = zeros(100, 1); % вектор-столбец, 100 элементов с
% нулевыми значениями
a3 = ones(1, 1000); % вектор-строка, 1000 элементов с
% единичными значениями
a4 = ones(1000, 1); % вектор-столбец, 1000 элементов с
% единичными значениями
a5 = rand(1000, 1); % вектор-столбец, 1000 элементов со
% случайными значениями
Матрицы в MatLab задаются аналогично векторам с той лишь разницей, что указываются обе размерности. Приведем пример инициализации единичной матрицы размером 3х3:
E = [1 0 0; 0 1 0; 0 01]; % единичная матрица 3х3
E = [1 0 0
0 1 0
0 0 1]; % единичная матрица 3х3
Аналогичным образом можно задавать любые другие матрицы, а также использовать приведенные выше функции zeros(), ones() и rand(), например:
A1 = zeros(10,10); % нулевая матрица 10х10 элементов
A2 = zeros(10); % нулевая матрица 10х10 элементов
A3 = ones(5); % матрица 5х5, состоящая из единиц
A4 = rand(100); % матрица 100х100, из случайных чисел
Для доступа к элементам матрицы применяется такой же синтаксис как и для векторов, но с указанием строки и столбца где находится требуемый элемент:
A = [1 2 3;4 5 6;7 8 9]; % матрица 3х3
disp( A(2,1) ); % вывод на экран элемента, стоящего во
% второй строке первого столбца, т.е. 4
disp( A(1,2) ); % вывод на экран элемента, стоящего в
% первой строке второго столбца, т.е. 2
Также возможны операции выделения указанной части матрицы, например:
B1 = A(:,1); % B1 = [1; 4; 7] – выделение первого столбца
B2 = A(2,:); % B2 = [1 2 3] – выделение первой строки
B3 = A(1:2,2:3); % B3 = [2 3; 5 6] – выделение первых двух
% строк и 2-го и 3-го столбцов матрицы А.
Размерность любой матрицы или вектора в MatLab можно определить с помощью функции size(), которая возвращает число строк и столбцов переменной, указанной в качестве аргумента:
a = 5; % переменная а
A = [1 2 3]; % вектор-строка
B = [1 2 3; 4 5 6]; % матрица 2х3
size(a) % 1х1
size(A) % 1х3
size(B) % 2х3
Теперь вы знаете какие однокоренные слова подходят к слову Как написать градусы в матлабе, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как написать градусы в матлабе", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.