Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные понятия среды MATLAB.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

2.10 Функции преобразования типов

В среде MATLAB предусмотрены функции преобразования типов подобные С Bulder и Delphy (таблица 1.12).

Синтаксис.

тип_1_2_тип_2(val), где тип_1 исходный тип переменной; тип_2 – тип в который выполняется преобразование, val – значение или ыражение. подлежащее преобразованию, форма представления которого должна соответствовать правилам начертания типа_2 (идентификаторы типов разделяются символом 2).

Таблица 1.12. Абревиатуры определения типа

Абревиатура

Назначение

num

числовое значение

dec

десятичное число

double

десятичное число двойной точности

mat

матрица

str

символьное значение

bin

бинарное значение

struct

структура

cell

ячейка (cellstr(S) символ 2 не ставится)

func

функция

Также реализована функция str2angle(strings) (и обратная функция angl2str), позволяющая преобразовывать символьную строку strings в формат – градусы-минуты-секунды. Набор функций и правила их задания более детально представлены в документации к среде MATLAB.

Примеры.

1) >> str2num('2 4; 6 8') – преобразование строки символов в матрицу

ans = 2 4

6 8

2) >> str2double('123.45e7') – преобразует строку в десятичное число двойной точности

ans = 1.2345e+009

3) >> str2double('2.7i - 3.14') преобразует строку в комплексное число

ans = -3.1400 + 2.7000i

4) >> A = rand(2,7,3); - формирует матрицу случайных чисел A размерности 2х7х3

C = num2cell(A) – преобразует матрицу A в ячейку с именем C

C(:,:,1) =

[0.9172] [0.7572] [0.3804] [0.0759] [0.5308] [0.9340] [0.5688]

[0.2858] [0.7537] [0.5678] [0.0540] [0.7792] [0.1299] [0.4694]

C(:,:,2) =

[0.0119] [0.1622] [0.3112] [0.1656] [0.2630] [0.6892] [0.4505]

[0.3371] [0.7943] [0.5285] [0.6020] [0.6541] [0.7482] [0.0838]

C(:,:,3) =

[0.2290] [0.1524] [0.5383] [0.0782] [0.1067] [0.0046] [0.8173]

[0.9133] [0.8258] [0.9961] [0.4427] [0.9619] [0.7749] [0.8687]

5) >> s.category = 'tree'; s.height = 37.4; s.name = 'birch'; – задание структуры

>> s – вывод структуры на экран

s = category: 'tree'

height: 37.4000

name: 'birch'

>> c = struct2cell(s) – преобразование структуры в ячейку

c = – вывод ячейки на экран

'tree'

[37.4000]

'birch'

Контрольные вопросы

  1. Какие системные переменные предусмотрены в среде MATLAB? В чем их отличие от системных констант?

  2. Как можно классифицировать типы данных среды MATLAB?

  3. Какие простые типы данных реализованы в среде MATLAB?

  4. Какие сложные типы данных реализованы в среде MATLAB?

  5. Какой командой можно описать тип данных?

  6. Какие форматы числовых данных предусмотрены в среде MATLAB?

  7. Какие существуют способы задания символьных переменных?

  8. Какие действительные типы данных предусмотрены в среде MATLAB?

  9. Какие предусмотрены целые типы данных?

  10. Как можно задать комплексные числа?

  11. Как можно задать массивы (вектора, матрицы)?

  12. Какая команда позволяет выполнять объединение нескольких массивов?

  13. Как осуществляется в среде MATLAB доступ к элементам массивов?

  14. Какие стандадартные функции существуют в среде MATLAB для формирования массивов?

  15. Для формирования каких специальных матриц, в среде MATLAB предусмотрены стандартные встроеные функции?

  16. Каки встроенные функции Вы знаете для обработки и получения характеристик массивов?

  17. Что такое тип данных "структура" и как он описывается?

  18. Можно ли создать массив структур?

  19. Как осуществляется доступ к элементам структуры?

  20. Какие стандартные функции предусмотрены в среде MATLAB для работы со структурами?

  21. Можно ли использовать команду множественного присвоения для рабоы сос труктурами?

  22. Что такое тип данных "ячейка" и как он описывается?

  23. Можно ли преобразовать структуру в ячейку и если да, то с помощью какой команды?

  24. Какая команда позволяет преобразовать числовой массив в ячейку?

  25. Как можно просмотреть содержимое ячейки?

  26. С помощью какой команды можно вывести графическое представление структуры ячейки?

  27. Какие способы определения типа данных предусмотрены в среде MATLAB?

  28. Как можно выполнить преобразование типов данных в среде MATLAB и, какие правила при этом необходимо учитывать?

  29. Какие форматы представления даты и времени предусмотрены в среде MATLAB?

  30. Какие стандартные функции позволяют выполнять преобразование форматов для данных "дата-время"?

  31. С помощью каких функции можно определить текущую дату и время и временной интервал?

  32. Предусмотрена ли среде MATLAB возможность определения времени загружености процессора некоторым приложением?

Упражнения.

1. Определите текущий формат представления чисел командой get. Установите формат – действительные числа в обычной десятичной форме и выведите значение е (ехпоненты) с точностью не менее чем до 12 знака. Преобразуйте значение в целочисленное представление. Сравните результаты.

(Подсказка: forman long g; e=exp(1) int16(e)).

2. Задайте комплексное число z= 2,5+1,2i. Найдите: модуль, сопряженное число. действительную и мнимую части. аргумент.

(Ответ: 1,92093; 1,5-1.2i; 1.5; 1,2; 0,67474)

3. Задайте символьной переменной b значение "a" двумя способами: используя ключевое слово syms; используя апострофы. Преобразуйте переменную b в целое число. Сравните значения.

(Подсказка: 1) syms b; b=a 2) b='a', int16(b)).

4. Из чисел от 1 до 4 сформируйте вектор столбец b и марицу а размерности 2х2. найдите: сумму чисел вектора столбца; нормы вектора b и марицы А; число обусловленности матрицы А. Определите размерность вектора-столбца и матрицы используя матричные функции и команду whos.

5. Из чисел от 1 до 9 сформируйте квадратную матрицу А. Транспонируйте ее и выполните поворот командой rot90, сравните результаты. Переставте столбцы и извлеките диагональ, а также верхнюю и нижнюю треугольные матрицы. Удалите второй столбец.

6. Сформируйте магический квадрат размерности 4. Найдите для него значение определителя и обратную матрицу.

7. Сформируйте матрицы случайных чисел с равномерным и нормальным законами распределения размерности 4. Найдите для них вектора минимальных значений. Объедените эти матрицы в одну размерности 8х4, разместив их последовательно по горизонтали. Извлеките из образованой матрицы вектор максимальных значений строк (подсказка: так ка функция max извлекает значения по столбцам, то матрицу надо транспонировать).

8. Используя команды для создания матриц специального типа, сформируйте матрицу размерности 5х5. Удалите второй стлбец матрицы и третью строку. Выведите результаты на экран.

9. Сформируйте квадратную сетку на плоскости размерности 5, используя команду meshgrid.

10. Сформируйте структуру студент, содержащую поля: ФИО, дата поступления. факультет, сиециальность, группа. Удалите поле даты поступления. Сформируйте массив из 5 записей. Задайте значения полям записей, Выведите вторую запись.

11. Сформируйте массив из нескольких ячеек, где каждая ячейка состоит из элементов, типа числового значения, сток символов, массива. Выведите на экран структуру ячейки в текстовом и графическом представлении. Задайте значения элементам ячейки. Выведите на экран значение второй ячейки. Измените значения первого элемента.

12. Сформируйте квадратную матрицу и найдите для нее вектор собственных значений V. Преобразуйте вектор V в тип "ячейка".

13. Используя команды обработки данных типа "дата", выведите на экран текущую дату в строков и внутреннем формате.

14. Выведите на экран календарь на следующий месяц. Запишите в переменную mydate значения первого воскресенья месяца.