Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИС-лабраб-методичка.doc
Скачиваний:
19
Добавлен:
06.02.2016
Размер:
534.02 Кб
Скачать

Лабораторная работа №1 Знакомство с системой. Работа с векторами и матрицами.

Цель работы: научиться создавать переменные различных типов; освоить особенности представления данных и особенности работы с данными различных типов.

1.Работа с числами и константами.

Целые числа. В системе они не выделяются явно. Наберем и выполним отдельно каждую команду:

а=2 а=2.0 а=2; a=1:6 b=1:20 c=10:-2:5

Вещественные числа. Выполним по отдельности следующие команды:

d=0.5:0.3:2.5 d=.5:.3:2.5 d=.5+l:.3-.l:2.5*2 length(d)

d(end) d(end-2) d(l) d(0) d(2:7) d(7:-l:2) d(150)

f=linspace(1.5,30,143); length(f)

Индексы всегда начинаются со значения 1. Команды набираются на малом латинском регистре. Возможна многопараметричность команд.

Диапазон вещественных чисел:

realmax realmin

Другие константы MATLAB:

pi i j eps

Комплексные числа:

q=l+2*i q=l+2i real(q) imag(q) abs(q) conj(q) s=angle(q)

(здесь -pi<s<=pi).

q=l+2*i; r=3; fi=0:01:pi; z=q+r*exp(i*fi); plot(z)-это верхняя полуокружность.

2.Работа с векторами и матрицами.

Векторы-строки: а=1:6 linspace(l,6,10) b=[1, 2, 3, 4] c=[1 2 3 4]

Векторы-столбцы: а=(1:6)' linspace(l,6,10)' b=[1; 2; 3; 4]

Операторы .' (транспонирование) и '(комплексное сопряжение) :

yl=linspace(l,6,4) '; y2=yl; y=yl+i*y2; у. ' y'

Команды linspace и : применимы для задания только вещественных векторов.

Ввод матриц.

A(I,j) – элемент из i-й строки и j-ro столбца. A(k) – k-й элемент таблицы, вытянутой в столбец.

A=[l,2;3,4] A=[l;2,3;4] A(2,2) A(3) A(5) size(A) А(3,4)=10 size(A) А(5)=6 size(A) A(22)=3 A=A(:) A(22)=3 size(A) [m,n]=size(A) A=reshape(l:24,4,6) size(A) A([l,end],:)=[] A(:,[l,end])=[] size(A)

Некоторые специальные матрицы:

m=3; n=4; eye(m,n) eye(m) eye(n) ones(m,n) ones(m) ones(n) zeros(m,n)

В MatLab предусмотрена возможность заполнения матриц случайным образом (аналог датчика случайных чисел). В этом случае от пользователя требуется задать тип распределения случайных величин.

rand(m,n) rand(m,n) diag(rand(m)) rand(m) Эти функции соответствуют равномерному распределению на интервале (0,1).

randn(m,n) Это нормальное распределение.

vl=l:4 v2=7:12 toeplitz(vl,v2) toeplitz(vl)

Представляют интерес следующие команды:

A=reshape(l:24,4,6) triu(A) triu(A,0) triu(A,2) triu(A,-l) triu(A) v=l:5 diag(v) diag(v,2) diag(v,-l) diag(A) diag(A,2) diag(A,-l) A=reshape(l:24,4,6) rot90(A) rot90(A,2)

3.Форматы выдачи на экран.

В обычном формате (format short) выдается 5 знаков, для целых чисел 9 знаков, порядки изменяются от -308 до +308. В полном формате (format long e) 16 знаков.

а=2 а=.001 a=1e-3 a=1e-5 a=123456789 a=1234567891 a=l+3*i format long e 2^.5 format short

Опция format short e позволяет получать ровные столбцы.

Текстовые переменные

Они берутся в кавычки (на букве э на латинском регистре), символ занимает 2 байта. Используются для задания заголовков в числовых выдачах и на графиках, для задания формул и т.д. Можно переводить текстовые переменные в числовые и наоборот. Выполним в командной строке

t='Moscow - столица России'

Контроль за переменными можно осуществлять, используя специальные операторы who и whos

Другие типы переменных - ячейки и структуры будут рассмотрены позднее.

Система help

help выдает список директорий системы;

help <имя директории> выдает список команд директории;

help <имя команды> выдает описание команды

type <имя команды> выдает текст команды или программы поль­зователя, если он составлен в терминах МATLAB.

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

Задание 1. Из заданной матрицы А выбрать вектор, компоненты которого есть все окаймляющие А элементы, взятые в порядке А(1,1), А(2,1),..., А (1,2).

Задание 2. Из заданной матрицы А размера m*n построить матрицу В с m строками, у которой диагонали с номерами 0, 1,..., n-1 были бы столбцами А с номерами 1…n, а все остальные элементы равнялись бы нулю.

Задание 3. Построить последовательность из 1000 целых случайных чисел, которые равновероятно принимали бы значения 11:18, и выдать, сколько из них оказалось равным 11, 12, ..., 18. Используйте команду round(k) округления k до ближайшего целого.