С какого символа начинаются комментарии в matlab

GeekBrains

Многострочный комментарий в Matlab-е существует?

Многострочный комментарий в FASM
Сегодня задался вопросом: можно ли сделать многострочный комментарий в FASM ? Что-то вроде такой.

существует ли в языке Си функция replace? и если существует то как работает?
А если её нет то каким образом можно изменить числа входящие в массив?

Как определить, существует ли найденный компонент на форме или не существует?
Как определить, существует ли найденный(с помощью FindComponent) компонент на форме или не.

1.1.3. Некоторые из основных приемов работы в MatLab

В MatLab используются все буквы латинского алфавита и арабские цифры от 0 до 9. Как и в С++, большие и малые буквы различаются. Кроме букв латинского алфавита используются все специальные символы клавиатуры компьютера. Все символы после символа ‘%’ до конца текущей строки в MatLab рассматриваются как комментарии.

Выполнение арифметических вычислений. Используются символы: `+`, `-`, `*`, `/` и `^` (возведение в степень). Для установления приоритета выполнения действий следует использовать круглые скобки `()`, а для подавления печати результата вычислений необходимо применять символ `;`. Пусть необходимо вычислить следующее выражение .

Щёлкнем ЛКМ в командной строке (там после этого должен появиться мигающий курсор) и наберем следующую последовательность символов 2^3.2/4.7-4*5.6 и нажмите на клавишу <<Enter>>. В рабочем окне появится запись

− к конце которой будет расположен мигающий курсор.

Если набрать следующую последовательность символов 2^3.2/4.7-4*5.6; и тоже нажать на клавишу <<Enter>>, то в рабочем окне появится другая запись

− с мигающим курсором в конце. Печать результата вычислений здесь подавлена символом `;`. Он хранится в переменной с именем ans и для его получения следует в командной строке набрать ans<<Enter>>. Кроме того в дальнейших вычислениях имя этой переменной (ans) можно подставлять вместо результата вычислений.

Если имеется необходимость повторно вызвать ранее уже введённую запись, то это легче всего сделать, используя клавиши <<>> и <<>>.

Вообще говоря, имя переменной может состоять из букв латинского алфавита, знака подчёркивания и цифр, и обязательно должно начинаться с буквы. Для того чтобы проверить занято ли уже какое-либо имя следует набрать в командной строке exist(‘имя переменной’). Нулевой ответ при выполнении этой команды (вызова функции exist) говорит, что имя свободно. Пример.

Для изменения формата выводимых числовых данных можно поступить двумя способами. Первый состоит в вызове в командной строке функции format с одним из её аргументов: short, short e, long, long e, bank, compact, loose. Пример

Второй способ состоит в вызове (ЛКМ через меню File Preferences…) окна Preferences, которое представлено на рис. 1.2. Здесь в ниспадающем списке элемента Numeric format: и следует выбрать желаемый числовой формат для выводимых данных. Помимо этого там же ниже в элементе Numeric display: можно изменить и вид выводимой в командном окне информации (компактный − compact или свободный − loose). Завершить выбор следует щелчком ЛКМ по кнопке OK.

Рис. 1.2. Окно Preferences

Массивы и работа с ними. Все данные MatLab представляет в виде массивов. Простое число в MatLab представляется в виде двумерного массива размером один на один. Массив − это упорядоченная, пронумерованная совокупность однородных данных, имеющая имя. Массивы бывают одномерными (вектор-столбцы и вектор-строки), двумерные и многомерные. В MatLab нумерация элементов массивов начинается с единицы.

Ввод вектор-строки осуществляется в квадратных скобках. При этом элементы следует отделять друг от друга пробелом или запятой. Пример

8.0000e-001 2.3000e+000 9.1000e+000

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

Над векторами определены следующие операции: вычисления его длины, транспонирования, сложения, вычитания, умножения на число, скалярное и векторное (только для трёхэлементных векторов) произведения, как показано ниже

>> L=length(a) % вычисление длины вектора

>> ar=a’ % транспонирование вектора

>> d=a+c % вычисление суммы векторов

>> g=a-c % вычисление разности векторов

0.6000 1.6000 8.2000

>> z=a*2 % умножение вектора на число

1.6000 4.6000 18.2000

>> u=dot(a,c) % скалярное умножение векторов

>> y=cross(a,c) % векторное умножение векторов

-4.3000 1.1000 0.1000

Векторы могут быть элементами при определении новых векторов, например

0.8000 2.3000 9.1000 0.2000 0.7000 0.9000

Для доступа к элементу массива следует после имени массива в круглых скобках указать его индекс, например

При работе с индексами удобна индексация при помощи символа ‘:’. Примеры

>> x=0:2*pi/9:2*pi % начальное значение 0, шаг − , конечное −

Columns 1 through 9

0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851

Над векторами возможны так называемые поэлементные операции (поэлементные умножение, деление и возведение в степень), как показано ниже

>> v=a.*c % поэлементное умножение

0.1600 1.6100 8.1900

>> z=a./c % поэлементное деление

4.0000 3.2857 10.1111

>> s=a.^c % поэлементное возведение в степень

0.9564 1.7915 7.2969

В системе MatLab не определены поэлементное сложение и вычитание.

Ввод двумерных массивов (прямоугольных матриц) осуществляется по строкам. Пусть, например, необходимо ввести матрицу

.

Это можно сделать тремя способами:

>> A=[0.4 -4.5 8.3;6.8 0.9 1.1; -6.3 3.5 4.7] % отделяем строки символом ‘;’

0.4000 -4.5000 8.3000

6.8000 0.9000 1.1000

-6.3000 3.5000 4.7000

B=[ 1.3 5.2 -8.1<<Enter>> % отделяем строки нажатием

1.3000 5.2000 -8.1000

-1.7000 2.4000 0.3000

6.6000 -7.1000 1.0000

>> D=[[3;4] [-1;3] [6;0]] % элементами строки являются столбцы

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

>> C=[4.4 0.7 -0.6; 2.8 -0.1 5.6] % ввод матрицы

4.4000 0.7000 -0.6000

2.8000 -0.1000 5.6000

>> s=size(C) % вычисление размера матрицы

>> C1=C.’ % транспонирование матрицы

>> n=numel(A) % вычисление числа элементов в матрице

>> P=A*B % матричное произведение

62.9500 -67.6500 3.7100

14.5700 29.7100 -53.7100

16.8800 -57.7300 56.7800

>> PP=A^2 % возведение в степень

-82.7300 23.2000 37.3800

1.9100 -25.9400 62.6000

-8.3300 47.9500 -26.3500

Обращение к элементам матрицы выполняется аналогично обращению к элементам вектора, но с использованием запятой, например

>> C(2,2)=-10 % элементу присваивается значение

4.4000 0.7000 -0.6000

2.8000 -10.0000 5.6000

>> c121=C(1:2,1) % выделяются элементы С(1,1) и С(2,1)

>> PP(:,2)=[] % удаляется второй столбец

>> PP(:,3)=[1 2 3] % добавляется третий столбец

-82.7300 37.3800 1.0000

1.9100 62.6000 2.0000

-8.3300 -26.3500 3.0000

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

A.*B − поэлементные умножения;

A./B − поэлементные деления;

GeekBrains

A.^p − поэлементное возведение в степень (p − число);

A.^B − возведение элементов матрицы A в степени, равные соответствующим элементам матрицы B.

Элементарные функции системы MatLab. MatLab включает в себя огромный набор функций. Для знакомства с ними и выбора необходимой следует воспользоваться справочной службой системы через меню Help Product Help. Откроется окно и в нём в навигационном дереве, расположенном слева, следует выбрать пункт MATLAB, как показано на рис. 1.3. При использовании функций не следует забывать, что в MatLab все данные − суть матрицы.

Рис. 1.3. Окно справочной системы

Построение таблицы значений функции пользователя. Пусть необходимо построить таблицу значений функции для значений переменной х от 0.1 и до 2.5 с шагом 0.3. Требуемое выполняется в два этапа.

Создаётся вектор-строка х, которая содержит координаты требуемых точек.

Для каждого элемента вектора х вычисляется значение функции y(x) и полученное значение записывается в вектор-строку − как показано ниже (операции умножения, деления и возведения в степень в выражении для функции должны выполняться поэлементно!)

0.1000 0.4000 0.7000 1.0000 1.3000 1.6000 1.9000 2.2000 2.5000

-0.9029 -0.1573 0.3560 0.8164 1.0638 1.0256 0.7712 0.4463 0.1857

Построение графика функции. Если в следующей строке командного окна вызвать функцию plot(x,y), то откроется окно, показанное на рис. 1.4, с искомым графиком.

Рис. 1.4. Окно графика

Для того, чтобы на одной координатной плоскости построить графики двух функций (например, y(x) и sin(3x)) следует вызвать функцию plot со следующим списком аргументов

После выполнения сказанного вид окна графика приобретёт вид, представленный на рис. 1.5. Если желательно, чтобы графики кривых не выглядели ломанными, то необходимо при определении вектора х выбрать меньший шаг.

Рис. 1.5. Окно графика

Функция plot позволяет пользователю достаточно гибко управлять процессом визуализации результатов вычислений. Один из возможных её синтаксисов

plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2. ), где Х1, Х2, … − имена векторов оси абсцисс; Y1, Y2, … − имена векторов оси ординат; LineSpec1, LineSpec2, … − спецификации 1-ой, 2-ой и т. д. линий, записываемы в апострофах (см. таблицу 1.1). Пример

Записанное выше приведёт к построению графика, показанного на рис. 1.6.

треугольник вершиной вниз

треугольник вершиной вверх

треугольник вершиной влево

треугольник вершиной вправо

Рис. 1.6. Окно графика

Из рассмотрения этого рисунка видно, что значения двух функций сильно отличаются по величине и для них желательно иметь несколько отличающиеся оси ординат. Последнее достигается использованием функции (результат − на рис. 1.7)

Рис. 1.7. Окно графика

М-файл функции. Работа из командной строки MatLab вызывает затруднения, если требуется вводить много команд и часто их изменять. Пусть, например, необходимо так задать в MatLab функцию , чтобы в дальнейшем её значение для, например, х = 7, можно было бы получить простым вызовомf(7) в командной строке − также как и для элементарных функций. Для этого в MatLab имеется простой механизм, называемый М-файл функция. Это, в сущности, аналог функций языков программирования. Сначала М-файл функцию надо создать. Для этого необходимо выполним щелчёк ЛКМ по иконке (New M-File − новый М-файл), находящейся в панели ярлыков (то же самое можно сделать выбрав меню File New M-File). Откроется окно редактора М-файлов и в нём, как показано на рис. 1.8, набираем текст функции (операции используем поэлементные!). Здесь function − обязательное служебное слово, с − имя переменной выходного параметра (если их более одного, то они через запятую записываются в квадратных скобках), f − имя функции, х − имя входной переменной (если их более одной, то они записываются через запятую). Комментарии в MatLab начинаются со знака процента и автоматически выделяются зелёным цветом. В этом же окне файл надо сохранить (щелчком ЛКМ по иконке, изображающей дискетку). Файл должен иметь то же имя, что и функция, а также тип m. В редакторе М-файлов может быть одновременно открыто несколько файлов. Переход между файлами осуществляется при помощи закладок с именами файлов, находящихся внизу окна редактора.

Рис. 1.8. Окно редактора М-файлов с функцией

Теперь имеется возможность вызывать функцию f, указывая конкретное значение её параметра, например

Если имеется необходимость повторно вызвать функцию f, то это целесообразно сделать, используя клавиши <<>> и <<>>. Для получения справки по любой встроенной функции MatLab достаточно установить курсор на имя функции и нажать на клавишу <<F1>>.

Построим график приведенной выше функции f(x) в декартовых координатах для промежутка изменения аргумента [-0.2, 2] с шагом 0.2. Будем исходить из того, что М-файл для f(x) уже сохранён на диске. Подадим в командной строке две простые команды

Результатом этих действий будет график, представленный на рис. 1.9,а. Если же подать следующие две команды

то результат окажется несколько иным (см. рис. 1.9,б).

Рис. 1.9. Окна графика функции f(x)

Решение системы линейных алгебраических уравнений (СЛАУ). Постановка задачи. Общий вид у СЛАУ следующий:

/>.

В матричном виде эта СЛАУ может быть записана в виде: , где

называется матрицей системы, − вектор-столбцом свободных членов или правых частей системы, а− искомым вектор-столбцом неизвестных системы. Решением СЛАУ является всякий вектор-столбецx, обращающий все уравнения системы в тождества.

Справедливо следующее утверждение. Если определитель основной матрицы СЛАУотличен от нуля, то система имеет единственное решение.

Рассмотрим порядок решения СЛАУ в MatLab на конкретном примере. Найти решение СЛАУ вида

Процесс решения будет выглядеть следующим образом

>> A=[7.9 5.6 5.7 -7.2;8.5 -4.8 0.8 3.5;4.3 4.2 -3.2 9.3;3.2 -1.4 -8.9 3.3]

7.9000 5.6000 5.7000 -7.2000

8.5000 -4.8000 0.8000 3.5000

4.3000 4.2000 -3.2000 9.3000

3.2000 -1.4000 -8.9000 3.3000

-1.0178e+004 % det А не равен нулю − решение единственное

>> A*x-b % вычисление невязки

Символ ‘\’ является оператором решения систем линейных уравнений.

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

Функция , определённая и непрерывная на некотором конечном или бесконечном интервале , называется алгебраической, если она имеет вид , где — некоторые действительные или комплексные числа. К трансцендентным уравнениям относятся неалгебраические нелинейные уравнения.

К численным методам решения нелинейных уравнений приходиться обращаться в случае отсутствия у них аналитических выражений для решений или же если выполнение вычислений по ним является крайне трудоёмким делом.

Приближенное нахождение изолированных действительных корней обычно складывается из двух этапов:

отделение корней, т. е. нахождение возможно узких промежутков , в которых содержится один и только один корень уравнения,i=1, 2, …;

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

Для отделения корней полезна известная теорема существования корней нелинейного уравнения из математического анализа.

Теорема. Если непрерывная функция принимает значения разных знаков на концах отрезка , т. е. , то найдётся хотя бы одно число такое, что .

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

Пример 1. Отделить корни уравнения на отрезке [-10, +10].

>> grid on % вызов функции grid с аргументом on приводит

% к появлению сетки на графике

Результат представлен на рис. 1.10,а. На нём видно, что у уравнения действительно имеется хотя бы один корень, но для более чёткого отделения корней желательно увеличить ту часть рисунка, что прилегает к оси абсцисс. Для этой цели следует использовать инструменты (Zoom In) и (Zoom Out), расположенные в графическом окне. В итоге получаем более удобное графическое представление (см. рис. 1.10,б), из которого следует, что корни уравнения находятся внутри отрезков [-3, -2], [0, 1] и [2, 3].

Рис. 1.10. Отделение корней нелинейного уравнения

Для реализации второго этапа решения нелинейного уравнения вида в пакете MatLab имеется функция fzero, записываемая в различных видах:

− fzero(‘fun’,x) − возвращает уточнённое значение для х, при котором достигается нуль функции fun − имя М-файла, представленной строкой. х, стоящее вторым аргументом при вызове fzero, является начальным приближением к искомому корню. Примеры

В втором примере ff − это имя функции пользователя, которая должна быть оформлена в виде М-файла (см. рис. 1.11).

Рис. 1.11. Окно редактора М-файлов с функцией ff

− fzero(‘fun’,[x1 x2]) − возвращает уточнённое значение для х, находящееся внутри интервала (х1, х2). Должно выполняться условие fun(x1)fun(x2) < 0. Примеры

− fzero(‘fun’,x,tol), fzero(‘fun’,[x1 x2], tol) − выполняют те же действия, что и ранее, но с заданной относительной точностью tol. Примеры

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

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

MATLAB Language Useful tricks Comment blocks

If you want to comment part of your code, then comment blocks may be useful. Comment block starts with a % < in a new line and ends with %>in another new line:

This allows you fo fold the sections that you commented to make the code more clean and compact.

These blocks are also useful for toggling on/off parts of your code. All you have to do to uncomment the block is add another % before it strats:

Sometimes you want to comment out a section of the code, but without affecting its indentation:

Usually, when you mark a block of code and press Ctrl+r for commenting it out (by that adding the % automatically to all lines, then when you press later Ctrl+i for auto indentation, the block of code moves from its correct hierarchical place, and moved too much to the right:

A way to solve this is to use comment blocks, so the inner part of the block stays correctly indented:

GeekBrains

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *