Как ввести вектор с клавиатуры в матлаб

Обновлено: 14.05.2024

Выше были рассмотрены операции с простыми переменными. Однако с их помощью сложно описывать сложные данные, такие как случайный сигнал, поступающий на вход фильтра или хранить кадр изображения и т.п. Поэтому в языках высокого уровня предусмотрена возможность хранить значения в виде массивов. В MatLab эту роль выполняют векторы и матрицы.

Ниже показан пример задания вектора с именем 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

© 2021 Научная библиотека

Копирование информации со страницы разрешается только с указанием ссылки на данный сайт

1. Различные способы ввода матриц в пакете MatLab

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

Для хранения матрицы используйте двумерный массив с именем A. При вводе учтите, что матрицу А можно рассматривать как вектор-столбец из двух элементов, каждый из которых является вектор-строкой длиной три, следовательно, строки при наборе отделяются точкой с запятой:

» А = [3 1 -1; 2 4 3]
А =
3 1 -1
2 4 3

Для изучения простейших операций над матрицами приведем еще несколько примеров. Рассмотрим другие способы ввода. Введите квадратную матрицу размера три так, как описано ниже:

Начните набирать в командной строке

Нажмите клавишу . Обратите внимание, что пакет ничего не вычислил. Курсор мигает на следующей строке без символа ». Продолжите ввод матрицы построчно, нажимая в конце каждой строки . Последнюю строку завершите закрывающей квадратной скобкой, получается:

2 7 0
-5 1 2]
B =
4 3 -1
2 7 0
-5 1 2

Еще один способ ввода матриц состоит в том, что матрицу можно трактовать как вектор-строку, каждый элемент которой является вектор-столбцом. Например, матрицу два на три

можно ввести при помощи команды:

» С = [[3; 4] [-1; 2] [7; 0]]
С =
3 -1 7
4 2 0

Посмотрите переменные рабочей среды, набрав в командной строке whos:

Итак, в рабочей среде содержится три матрицы, две прямоугольные и одна квадратная.

2. Обращение к элементам матриц в пакете MatLab

Элементы матриц могут входить в состав выражений:

Расположение элементов матрицы в памяти компьютера определяет еще один способ обращения к ним. Матрица А размера m на n хранится в виде вектора длины mn, в котором элементы матрицы расположены один за другим по столбцам

[А(1,1) А(2,1) . А(m,1) . А(1,n) А(2,n) . А(m,n)].

Для доступа к элементам матрицы можно использовать один индекс, задающий порядковый номер элемента матрицы в векторе.
Матрица С, определенная в предыдущем подразделе, содержится в векторе

[C(1,1) C(2,1) C(1,2) С(2,2) С(1,3) С(2,3)],

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

3. Операции над матрицами в пакете MatLab: сложение, вычитание, умножение, транспонирование и возведение в степень

При использовании матричных операций следует помнить, что для сложения или вычитания матрицы должны быть одного размера, а при перемножении число столбцов первой матрицы обязано равняться числу строк второй матрицы. Сложение и вычитание матриц, так же как чисел и векторов, осуществляется при помощи знаков плюс и минус. Найдите сумму и разность матриц С и А, определенных выше:

» S = А+В
. Error using ==> ±
Matrix dimensions must agree.

Для умножения матриц предназначена звездочка:

» Р = С*В
P =
-25 9 11
20 26 -4

Умножение матрицы на число тоже осуществляется при помощи звездочки, причем умножать на число можно как справа, так и слева:

» Р = А*3
Р =
9 3 -3
6 12 -3
» Р = 3*А
Р =
9 3 -3
6 12 9

Замечание 1

Если матрица есть произвольная матрица размера n m, то матрица, транспонированная по отношению к А,есть матрица размера m n: Таким образом, строки матрицы становятся столбцами матрицы , а столбцы матрицы становятся строками матрицы .
Комплексно-сопряженная матрица получается из исходной в два этапа: выполняется транспонирование исходной матрицы, а затем все комплексные числа заменяются на комплексно-сопряженные.

Сопряжение и транспонирование матриц, содержащих комплексные числа, приведут к созданию разных матриц:

Замечание 2

При вводе вектор-строк их элементы можно разделять или пробелами, или запятыми. При вводе матрицы К применены запятые для более наглядного разделения комплексных чисел в строке.

Возведение квадратной матрицы в целую степень производится с использованием оператора ^:

» В2 = В^2
B2 =
27 32 -6
22 55 -2
-28 -6 9

Проверьте полученный результат, умножив матрицу саму на себя.
Убедитесь, что вы освоили простейшие операции с матрицами в MatLab. Найдите значение следующего выражения

Учтите приоритет операций, сначала выполняется транспонирование, потом возведение в степень, затем умножение, а сложение и вычитание производятся в последнюю очередь.

4. Умножение матриц и векторов

Вектор-столбец или вектор-строка в MatLab являются матрицами, у которых один из размеров равен единице, поэтому все вышеописанные операции применимы и для умножения матрицы на вектор-столбец или вектор-строки на матрицу. Например, вычисление выражения

можно осуществить следующим образом:

5. Блочные матрицы

» К = [А В; С D]
K =
-1 4 2 0
-1 4 0 5
3 -3 8 9
-3 3 1 10

Обратной задачей к конструированию блочных матриц является задача выделения блоков. Выделение блоков матриц осуществляется индексацией при помощи двоеточия. Введите матрицу

и затем выделите подматрицу с элементами , задав номера строк и столбцов при помощи двоеточия:

Для выделения из матрицы столбца или строки (то есть массива, у которого один из размеров равен единице) следует в качестве одного из индексов использовать номер столбца или строки матрицы, а другой индекс заменить двоеточием без указания пределов. Например, запишите вторую строку матрицы Р в вектор р

При выделении блока до конца матрицы можно не указывать ее размеры, а использовать элемент end:

6. Удаление строк и столбцов

В MatLab парные квадратные скобки [ ] обозначают пустой массив, который, в частности, позволяет удалять строки и столбцы матрицы. Для удаления строки следует присвоить ей пустой массив. Удалите, например, первую строку квадратной матрицы:

Обратите внимание на соответствующее изменение размеров массива, которое можно проверить при помощи size:

Аналогичным образом удаляются и столбцы. Для удаления нескольких идущих подряд столбцов (или строк) им нужно присвоить пустой массив. Удалите второй и третий столбец в массиве M

Индексация существенно экономит время при вводе матриц, имеющих определенную структуру.

7. Заполнение матриц при помощи индексации

Выше было описано несколько способов ввода матриц в MatLab. Однако часто бывает проще сгенерировать матрицу, чем вводить ее, особенно если она обладает простой структурой. Рассмотрим пример такой матрицы:

Генерация матрицы Т осуществляется в три этапа:
1. Создание массива T размера пять на пять, состоящего из нулей.
2. Заполнение первой строки единицами.
3. Заполнение части последней строки минус единицами до последнего элемента.
Соответствующие команды MatLab приведены ниже.

» A(1:5, 1:5) = 0
A=
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
» A(1, 🙂 = 1
A=
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
» A(end, 3:end) = -1
A=
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 -1 -1 -1

Создание некоторых специальных матриц в MatLab осуществляется при помощи встроенных функций.

8. Создание матриц специального вида

Заполнение прямоугольной матрицы нулями производится встроенной функцией zeros, аргументами которой являются число строк и столбцов матрицы:

» A = zeros(3, 6)
A =
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

Один аргумент функции zeros приводит к образованию квадратной матрицы заданного размера:

» A = zeros(3)
A =
0 0 0
0 0 0
0 0 0

Единичная матрица инициализируется при помощи функции eye:

» I = eye(4)
I=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

Функция eye с двумя аргументами создает прямоугольную матрицу, у которой на главной диагонали стоят единицы, а остальные элементы равны нулю:

» I = eye(4, 8)
I =
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0

Матрица, состоящая из единиц, образуется в результате вызова функции
ones:

» E = ones(3, 7)
E =
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1

Использование одного аргумента в ones приводит к созданию квадратной матрицы, состоящей из единиц.

MatLab предоставляет возможность заполнения матриц случайными элементами. Результатом функции rand является матрица чисел, распределенных случайным образом между нулем и единицей, а функции randn — матрица чисел, распределенных по нормальному закону:

» R = rand(3, 5)
R =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763

Один аргумент функций rand и randn приводит к формированию квадратных матриц:
Часто возникает необходимость создания диагональных матриц, т.е. матриц, у которых все недиагональные элементы равны нулю. Функция diag формирует диагональную матрицу из вектор-столбца или вектор-строки, располагая их элементы по диагонали матрицы:

» d = [1; 2; 3; 4];
» D = diag(d)
D =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4

Функция diag служит и для выделения диагонали матрицы в вектор, например

» A = [10 1 2; 1 20 3; 2 3 30];
» d = diag(A)
d =
10
20
30

9. Поэлементные операции с матрицами

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

Умножение каждого элемента одной матрицы на соответствующий элемент другой производится при помощи оператора .*:

Для деления элементов первой матрицы на соответствующие элементы второй используется оператор ./, а для деления элементов второй матрицы на соответствующие элементы первой служит .:

» R1 = А./В1
R1 =
-2.0000 2.5000 -0.1250
0.4286 -1.3333 -1.8000
» R2 = А.В1
R2 =
-0.5000 0.4000 -8.0000
2.3333 -0.7500 -0.5556

Поэлементное возведение в степень осуществляется при помощи оператора .^. Показатель степени может быть числом или матрицей того же размера, что и матрица, возводимая в степень. Во втором случае элементы первой матрицы возводятся в степени, равные элементам второй матрицы.

10. Визуализация матриц

Матрицы с достаточно большим количеством нулей называются разреженными. Часто необходимо знать, где расположены ненулевые элементы, т.е. получить так называемый шаблон матрицы. Для этого в MatLab служит функция spy. Посмотрим шаблон матрицы G
.

После выполнения команды spy на экране появляется графическое окно Figure No. 1. На вертикальной и горизонтальной осях отложены номера строк и столбцов. Ненулевые элементы обозначены маркерами, внизу графического окна указано число ненулевых элементов (nz = 19).
Наглядную информацию о соотношении величин элементов матрицы дает функция imagesc, которая интерпретирует матрицу как прямоугольное изображение. Каждый элемент матрицы представляется в виде квадратика, цвет которого соответствует величине элемента. Для того чтобы узнать соответствие цвета и величины элемента следует использовать команду colorbar, выводящую рядом с изображением матрицы шкалу цвета (Insert (в графическом окне Figure No. 1), colorbar). Наконец, для печати на монохромном принтере удобно получить изображение в оттенках серого цвета, используя команду colormap(gray) (Edit (в графическом окне Figure No. 1), Colormap, Colormap Editor, Tools, gray). Мы будем работать с матрицей G. Набирайте команды, указанные ниже, и следите за состоянием графического окна:

В результате получается наглядное представление матрицы.

Работа с матрицами.

Это означает, что матрица имеет n строк и m столбцов.

Если элементы главной диагонали равны 1, а остальные равны 0, то такая матрица называется "единичной" (обозначение: E или I).

Пример: определить матрицу для системы MATLAB.

Решение: в системе MATLAB для матриц применяются буквенные обозначения. Множество элементов записывается в квадратных скобках "[]"; элементы одной строки записываются через запятую или через пробел, строки разделяются точкой с запятой ";".

A = [3 2; 1 4];
или
A = [3 2; 1 4]

A = [3, 2; 1, 4];
или
A = [3, 2; 1, 4]

Если Вы хотите, чтобы система MatLab отобразила результат операции в рабочем поле, точку с запятой ставить не нужно.

Приведем результаты работы программ:


Без точки с запятой:


С точкой с запятой:

Любое число является матрцей размерностью 1*1.

Действия над матрицами:

Внимание! A*B не равно(!) B*A.

Для матриц не определена операция деления (X = b/A). Зато есть операция нахождения обратной матрицы (Команда MATLAB: A -1 ). Тогда X = A -1 *b. Команда MATLAB: X = A^(-1).

Умножение матриц (MATLAB).

Узнать, как математически выполняется умножение матриц, можно в соответствующем разделе: Математика/Умножение матриц.

В MATLAB у множение записывается при помощи оператора * или .* (для поэлементного умножения).

Пример: выполнить умножение матриц в системе MATLAB:




Определитель квадратной матрицы.

Естественно, необходимо знать, как математически вычисляется определитель матриц. Почитайте в соответствующем разделе: Математика/Определитель (детерминант) матрицы.

В MATLAB нахождение определителя записывается при помощи команды det( ).

Пример: найти определитель матрицы A = [0 1; 2 0] с помощью MATLAB.

Обратная матрица.

Обязательно прочитайте, как математически вычисляется обратная матрица, в соответствующем разделе: Математика/Нахождение обратных матриц.

В MATLAB нахождение обратных матриц записывается при помощи команды ^(-1).

Пример: найти обратную матрицу для A = [2 3 1; 2 8 0; 5 6 3] с помощью MATLAB.

Ответ: A -1 =[12 -1.5 -4; -3 0.5 1; -14 1.5 5].

1. Матрица строка. Указывается переменная, ставится знак присвоения и в квадратных скобках через запятую или пробел перечисляются элементы:

2. Матрица столбец. В качестве разделителя элементов применяется символ «;»:

3. Квадратная или прямоугольная матрица:

>> C = [5 6 9; 56 45 73; 15,21,36];

4. Генерация вектора. Синтаксис: = : : . Если не указать шаг, то по умолчанию он принимается за 1.

5. Единичная матрица. Синтаксис: =ones( , ).

6. Нулевая матрица. Синтаксис: =zeros( , );

Доступ к ячейкам матрицы. Синтаксис: ( , ). Необходимо помнить, что нумерация строк и столбцов начинается с 1.

Операции с матрицами:

1. Скалярные операции. Умножение и деление матрицы на число, а также сложение и вычитание матрицы и числа (скаляр) – «.*», «./»,«.+», «.–». Каждая скалярная операция выполняются с каждой ячейкой матрицы отдельно. Любая скалярная (поэлементная) операция, то есть операция сразу над всем массивом, в MatLab обозначаются при помощи точки.

2. Сложение и вычитание матриц. Данная операция выполнима только с матрицами одинакового размера. При выполнении операции действие выполняется с соответствующими друг другу ячейками.

3. Произведение матриц. Производится последовательное умножение строки первой матрицы на столбец второй. Для реализации данной операции необходимо выполнение условия (количество строк первой матрицы ровно количеству столбцов во второй матрице). Матрица результата будет иметь столько же строк сколько и в первой матрице, и количество столбцов равное количеству столбцов во второй матрице.

4. Удаление отдельных столбцов или строк. Для удаления отдельных столбцов или строк матрицы используются: пустые квадратные скобки [] и оператор двоеточие (:).

x = input( prompt ) отображает текст в prompt и ожидает пользователя, чтобы ввести значение и нажать клавишу Return. Пользователь может ввести выражения, как pi/4 или rand(3) , и может использовать переменные в рабочей области.

Если пользователь нажимает клавишу Return, ничего не вводя, то input возвращает пустую матрицу.

str = input( prompt ,'s') возвращает введенный текст, не оценивая вход как выражение.

Примеры

Запрос числового входного параметра или выражения

Запросите числовой вход, и затем умножьте вход на 10.

В подсказке введите числовое значение или массив, такой как 42 .

Функция input также принимает выражения. Например, повторно выполните код.

В подсказке введите magic(3) .

Запрос необработанного ввода текста

Запросите простой текстовый ответ, который не требует никакой оценки.

Функция input возвращает текст точно, как введено. Если вход пуст, этот код присваивает значение по умолчанию, 'Y' , к str .

prompt — Текст отображен пользователю
символьный вектор

Текст отображен пользователю, заданному как вектор символов.

Чтобы создать подсказку, которая охватывает несколько строк, используйте '\n' , чтобы указать на каждую новую строку. Чтобы включать наклонную черту влево ( '\' ) в подсказку, используйте '\\' .

Выходные аргументы

x Результат вычисляется от входа
массив

Результат вычисляется от входа, возвращенного как массив. Тип и размерности массива зависят от ответа на подсказку.

str Точный текст входа
символьный вектор

Точный текст входа, возвращенного как вектор символов.

Алгоритмы

Браузер Рабочей области не обновляется, в то время как input ожидает ответа от пользователя. Поэтому, если вы запускаете input в рамках скрипта, браузер Рабочей области не отображает изменения, внесенные в переменные в рабочей области, пока скрипт не закончил запускаться.

Смотрите также

Представлено до R2006a

Документация MATLAB
Поддержка

© 1994-2019 The MathWorks, Inc.

Для просмотра документации необходимо авторизоваться на сайте
Войти

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

В формуле приглашение представляет текстовую информацию, которая должна отображаться, например, a = input ('пожалуйста, введите число \ n'), она будет отображаться в командной строке, введите число вручную (если вы вводите другие форматы, такие как Персонажи будут не правы). Это значит, что программа не будет продолжать работать, но дождитесь ввода номера и затем нажмите Enter, чтобы продолжить. Ввод текста такой же. Увидеть большеФункция ввода в MATLAB。

2. Другие входы

2.1 fscanf

Во-первых, формат файла, читаемый с использованием функции fscanf, представляет собой текстовый формат, и применяются три следующие формы:

A = fscanf( fileID , formatSpec ) Считать данные в открытом текстовом файле в вектор-столбец A Средний и в соответствии с formatSpec Указанный формат интерпретирует значения в файле. fscanf Функция повторно применяет формат ко всему файлу и размещает указатель файла в конце файла. если fscanf Невозможно изменить formatSpec Сопоставляя с данными, он только прочитает соответствующую часть и остановит обработку. fileID (идентификатор файла) можно получить, открыв файл с помощью fileID = fopen ('x.txt', 'a'); formatSpec Частичный формат сегмента данных.

A = fscanf( fileID , formatSpec , sizeA ) Данные файла считываются в измерение sizeA Массив A , И поместите указатель файла после последнего прочитанного значения. fscanf Заполните в столбце порядок A 。 sizeA Должно быть положительным целым числом или использовать [m n] Форма которой m и n Это положительное целое число (это также может быть бесконечная положительная бесконечность, что означает чтение всех соответствующих строк / столбцов / полных блоков данных).

[ A , count ] = fscanf(___) Также вернется fscanf Читать в A Количество полей в. Для числовых данных это количество значений, которые были прочитаны. Вы можете использовать этот синтаксис в сочетании с любыми входными параметрами в предыдущем синтаксисе.

Тем не менее, я обычно не использую это.

2.2 load

Загрузка - самая распространенная функция чтения файлов в MATLAB. Основные формы:

Он может быть загружен напрямую, например data = load ('D: /test.txt') или data = load ('D: /test.txt', 'x'), чтобы прочитать переменную x в test.txt, где x также можно заменить массивом ячеек с несколькими переменными, например, заменить x на var , где var = ; в дополнение к текстовым файлам txt это также может быть MATLAB Тип данных файла формата mat (будет напрямую выводиться в рабочую область), формат файла ascii, как показано в третьей формуле, создаст массив двойной точности, содержащий данные файла.

Данные, загружаемые методом загрузки, особенно распространены. Их можно увидеть во многих функциях расширения MATLAB. Формат загрузки также очень богат. Это может быть текстовый файл, файл базы данных или файл таблицы.

2.3 fopen

fopen - открыть файл, и его различные форматы подробно описаны в функции fprintf ниже. После открытия файла через fopen, вы можете использовать текстовый файл или функцию чтения строк testcan, чтобы прочитать файл, формат вызова следующий:

После открытия файла testscan попытается сопоставить данные в файле со спецификатором преобразования в formatSpec. Функция testscan повторно сканирует данные в соответствии с formatSpec во всем файле и останавливается до тех пор, пока formatSpec не сможет найти совпадающие данные.

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

fileID = fopen('D:/test.txt','r');
rowdata = textcan (fileID, '% s', 'DElimiter', '\ n');% получает каждую строку данных
fclose(fileID);
whos rowdata
rowdata
% rowdata , будет сообщено об ошибке, rowdata - это массив ячеек
a=rowdata
whos a
b1=a
whos b1


Существует три основных формата вывода:

1. Прямой вывод в командную строку

MATLAB позволяет напрямую вводить имена переменных в сценариях (M-файлах) или командных строках для вывода.Этот метод относительно прост и удобен в применении и подходит для тестирования. Но общий вывод всегда выводится в соответствии с форматом системы по умолчанию. Если вы хотите настроить его, вам нужно изменить формат вывода командной строки через формат перед программой. См. Таблицу ниже для большего количества числовых форматов (их можно найти в документации MATLAB

Эти стили управляют форматом вывода числовых переменных.

Исправлен короткий десятичный формат с 4 цифрами после запятой.

Длинный фиксированный десятичный формат, double Значение содержит 15 цифр после десятичной точки, single Значение содержит 7 цифр после десятичной точки.

Краткая научная запись, с 4 цифрами после десятичной точки.

Длинная научная запись, double Значение содержит 15 цифр после десятичной точки, single Значение содержит 7 цифр после десятичной точки.

Короткий фиксированный десятичный формат или научное обозначение (в зависимости от того, что является более компактным), всего 5 цифр.

Длинный фиксированный десятичный формат или научная запись (в зависимости от того, что является более компактным), для double Значение, всего 15 цифр, для single Значение, всего 7 цифр.

Краткое инженерное обозначение, с 4 цифрами после десятичной точки и показателем, кратным 3.

Длинная техническая запись, включающая 15 значащих цифр, показатель степени, кратный 3.

Положительный / отрицательный формат, показывающий положительные, отрицательные и нулевые элементы отдельно + 、 - И пустые символы.

Формат валюты, включая 2 цифры после запятой.

Шестнадцатеричное представление двоичного числа двойной точности.

Соотношение маленьких целых чисел.

Кроме того, вы также можете установить формат межстрочного интервала при выводе матрицы:

Скрыть слишком много пустых строк, чтобы показать больше вывода на одном экране.

Добавьте пустые строки, чтобы сделать вывод легче для чтения.

2 Вывод функции fprintf

Функция fprintf является одной из наиболее распространенных функций MATLAB (см.функция fprintf), Потому что он может установить выходной формат, более гибкий и всеобъемлющий. Наиболее распространенная форма: fprintf («% s - мальчик», boyname), где boyname представляет имя переменной, в которой хранится строка. Аналогично, эта форма может выводить десятичные числа (% d) и восьмеричные числа (% o) числа с плавающей запятой в записи с фиксированной запятой (% f) и числа с плавающей запятой в экспоненциальной записи (% e), одиночные символы (% c) и символьные строки (% s).

Если вам нужно контролировать длину вывода, вы можете добавить число после знака процента, например,% 8s. Выходная длина равна восьми (если фактическая длина строки превышает восемь, сама строка будет выведена и не будет усечена), оставьте по крайней мере 8 в командной строке Заполнителя недостаточно для заполнения пробелами, и% 4.8f выведет 4-значное целое число плюс десятичную точку плюс 8 десятичных цифр.

Выходной формат вышеупомянутого случая соответствует формату, выровненному по правому краю.Если вы хотите выровнять по левому краю, вы можете добавить знак минус после знака процента или перед форматом, например% -8s. Кроме того, мы также можем использовать некоторые специальные управляющие символы для поддержания красоты выходного формата, такие как \ t (горизонтальные) табуляции, \ n разрывы строк, \ v вертикальные табуляции.

Кроме того, функция fprintf также может выводить данные в файл и сохранять их, а также управлять ими в сценарии MATLAB. Случай формата следующий:

Вам необходимо открыть файл (fopen) перед выводом и закрыть файл (fclose) после вывода, как показано выше. Среди них функция fopen - это имя файла и идентификатор. Существует 8 типов идентификаторов. Если вы хотите создать новый файл, это w. Если вы добавляете его в исходный файл, это a. Как правило, эти два типа используются.

Откройте файл для чтения.

Откройте или создайте новый файл для записи. Отменить существующий контент (если есть).

Откройте или создайте новый файл для записи. Добавить данные в конец файла.

Откройте файл для чтения и записи.

Откройте или создайте новый файл для чтения и записи. Отменить существующий контент (если есть).

Откройте или создайте новый файл для чтения и записи. Добавить данные в конец файла.

Откройте файл, чтобы добавить (но не обновлять автоматически) текущий буфер вывода.

Откройте файл, чтобы записать (но не обновлять автоматически) текущий буфер вывода.

fclose закрывает файл. FileID в скобках является идентификатором файла, то есть представляет открытый файл. Без особых обстоятельств этот оператор также можно заменить на fclose ('all'), чтобы закрыть все файлы. Формат fprintf аналогичен предыдущему выводу в командной строке, но идентификатор файла fileID

3.disp

Это выведет в одну строку: Алисе будет 12 в этом году.

Общие операции ввода и вывода здесь, и необходимо продолжить больше контента. Вообще говоря, этих входов и выходов достаточно

Читайте также: