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

2. Загрузка матриц из файла

Команда load считывает двоичные файлы, содержащие матрицы созданные в MATLAB ранее, либо текстовые файлы, содержащие текстовые данные. Текстовые файлы должны быть сформированы в виде прямоугольной таблицы чисел, отделенных пробелами или символами табуляции, с равным числом элементов в каждой строке.

Команда save служит для сохранения значений имеющихся переменных в двоичный файл. Например, вызов

>> save(‘file1.mat’, A, B)

сохранит значения переменных A и B в файл с названием ‘file1.mat’. Вызов команды save без названия переменных, например save(‘file2.mat’), сохраняет в файл все имеющиеся переменные.

Возможен вызов команд save и load без указания расширения файла. В этом случае MATLAB автоматически добавляет расширение mat.

Упражнение 2.

  1. Создайте в любом редакторе текстовый файл содержащий строки:

2 4 6 8

-1 3 0 4

2 -3 -5 6

  1. Сохраните созданный файл с именем matrix1.dat.

  2. Создайте матрицу S c помощью команды

>> S = load(‘matrix1.dat’)

  1. Сохраните матрицу S в файл S.mat.

  2. Сохраните все имеющиеся переменные в файл all.mat.

3. Индексация элементов матрицы

Для доступа к отдельным элементам матриц указываются их индексы. Например, A(1,3) – элемент матрицы А, стоящий в 1-й строке и 3-м столбце; В(2) (В(1,2)) – второй элемент вектора-строки В.

Также для доступа к элементам матрицы можно использовать линейную индексацию с одним индексом. В этом случае сначала нумеруются элементы 1-го столбца, затем по порядку 2-го и так далее. Например, пусть матрица A имеет размер 3 x 4. Тогда, элемент A(2) – это элемент матрицы, стоящий во 2-й строке и 1-м столбце; A(7) – элемент матрицы, стоящий в 1-й строке и 3-м столбце.

Для доступа к нескольким элементам матрицы в качестве индекса указывается массив значений. Например:

А(1:2, 2) – вектор-столбец, содержащий 1-й и 2-й элемент из 2-го столбца матрицы А;

А(2, [1 3]) – вектор-строка, содержащая 1-й и 3-й элемент из 2-й строки матрицы А;

А(2:3, 3:4) - матрица размера 2 x 2, составленная из элементов стоящих на пересечении 2-й и 3-й строк с 3-м и 4-м столбцами матрицы А.

Для получения доступа к целому столбцу матрицы в качестве первого индекса используется двоеточие без значений, например A(:, 2) – второй столбец матрицы. Для получения доступа к целой строке – двоеточие без значений в качестве второго индекса, например A(3, :) – третья строка матрицы.

Упражнение 3.

  1. Создайте случайную матрицу А размера 4 x 6, со значениями в диапазоне [-3; 3].

  2. Создайте вектор B, содержащий с 1-го по 3-й элемент 5-го столбца матрицы A.

  3. Создайте матрицу С, содержащую два последних столбца матрицы А.

  4. Создайте матрицу D, составленную из элементов, стоящих на пересечении нечетных строк и четных столбцов матрицы А.

  1. Объединение матриц, изменение размера матриц.

Объединение матриц – это процесс соединения маленьких матриц для создания больших. Объединение матриц записывается в том-же формате как при задании списка элементов матрицы с помощью перечисления. Только в качестве элементов списка вместо чисел используются матрицы более низкой размерности.

Обратите внимание, объединение матриц возможно только в том случае, если соответствующие размерности матриц совпадают. То есть, форма матрицы должна после объединения оставаться прямоугольной.

Пример 3.

>> A=eye(3)

A =

1 0 0

0 1 0

0 0 1

>> B=[A zeros(3, 2)]

B =

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

>> C=[B; ones(2,5)]

C =

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

1 1 1 1 1

1 1 1 1 1

>> D=[C rand(2)]

??? Error using ==> horzcat

CAT arguments dimensions are not consistent.

Для операции объединения матриц также можно воспользоваться альтернативной записью с помощью встроенных команд horzcat и vertcat.

Удаление строк и столбцов. Вы можете удалять строки и столбцы матрицы используя пустую пару квадратных скобок в операции присваивания.

Пример 4.

>> A=diag(1:4)

A =

1 0 0 0

0 2 0 0

0 0 3 0

0 0 0 4

>> A(2,:)=[]

A =

1 0 0 0

0 0 3 0

0 0 0 4

>> A(:,3)=[]

A =

1 0 0

0 0 0

0 0 4

Создание матрицы составленной из повторяющихся блоков. Команда repmat позволяет создать матрицу составленную из нескольких повторяющихся блоков, например содержащую несколько одинаковых столбцов.

Пример 5.

>> A=[1:2:5]

A =

1 3 5

>> B=repmat(A,1,2)

B =

1 3 5 1 3 5

>> B=repmat(A,2,1)

B =

1 3 5

1 3 5

>> B=repmat(A,2,2)

B =

1 3 5 1 3 5

1 3 5 1 3 5

Упражнение 4.

  1. Задайте матрицу А с помощью встроенных функций и команд объединения матриц (т.е. без использования явного перечисления ее элементов). Матрица должна иметь вид:

Постарайтесь использовать минимально возможное число команд.

  1. Создайте матрицу B, полученную из матрицы А вычеркиванием строки и столбца, содержащих элемент А(2, 3).