MATLAB 7 предлагает встроенную поддержку для целочисленной математики и математики с плавающей точкой, а также языковые конструкции для обработки и анализа больших наборов данных. Большое количество оптимизаций для типов данных, операций, функций и аппаратного обеспечения привело к значительному повышению скорости вычислений пользовательских приложений. Обновлен и усовершенствован компилятор MATLAB Compiler, который теперь полностью поддерживает язык MATLAB, позволяя разработчикам более эффективносоздавать независимые приложения.
Среди новых программных возможностей следует отметить переработанный интерфейс, включающий новые программные и отладочные инструменты, автоматический анализ качества кода, а также возможность сохранения файла программы непосредственно в HTML- и Word- форматах. Новые интерактивные инструменты построения графиков обеспечивают более быстрое и удобное создание Matlab графиков, включая возможность генерации кода для повторного многократного создания графиков.
Повышена надежность вычислений с числами двойной точности, а также осуществлена поддержка других типов данных: целочисленных и одинарной точности, а также вычислений с ними. Обработка новых типов данных без перевода их в числа двойной точности существенноповышает производительность и уменьшает объем используемой памяти. Это позволяет работать с большими массивами данных. Благодаря новым FFT алгоритмам скорость быстрых Фурье преобразований одинарной точности повышена в среднем на 20%. Кроме того, MATLAB теперь использует библиотеку целочисленных алгоритмов Intel MMX, что повышает скорость вычислений с целочисленными данными до 8 раз.
Содержащийся в семействе продуктов MATLAB 7 компилятор MATLAB Compiler теперь поддерживает весь язык MATLAB,включая большинство приложений (MATLAB Toolboxes). Улучшенный компилятор MATLAB Compiler дает возможность инженерам распространять независимые приложения, разработанные в MATLAB, или включать их в такие средства разработки, как Excel, C, C++, и COM. В результате, инженеры и ученые теперь могут создавать значительно более широкий спектр MATLAB-приложений и более широко их распространять.
Основным типом данных, с которым производятся вычисления в среде MATLAB, являются конечные десятичные дроби, приближающие с заданной точностью произвольные вещественные числа. Последние в общем случае представимы лишь в виде бесконечных десятичных дробей. Можно сказать, что MATLAB работает с вещественными числами приближённо. Вещественное число задаётся в MATLABе мантиссой и показателем степени:
2.851038547e+12; -456.38456978; 0.0045692e0; 0.93185e-1; 4.5; -123
и т.д.
У целых чисел отсутствуют дробные части, но они все равно представляются системой MATLAB на машинном уровне в той же форме, что и дробные числа. Этот основной тип данных называется double.
Именно этот тип данных подразумевается "по умолчанию" для любой переменной. Под мантиссу и показатель степени (на машинном уровне используется двоичная система записи чисел) отводится 8 байт памяти. В результате достигается точность представления десятичных чисел порядка 15 значащих цифр. При этом максимальным по модулю представимым в системе MATLAB вещественным числом является
1.797693134862316e+308
а минимальным по модулю является следующее вещественное число:
2.225073858507202e-308
Для этих чисел даже зарезервированы имена: realmax и realmin.
После запуска среды MATLAB в её командном окне появляется знак приглашения >>,
после которого можно вводить с клавиатуры числа, имена переменных, знаки операций (в частности, знак = соответствует операции присваивания), что в совокупности составляет некоторое выражение. Имена переменных начинаются с буквы и состоят из букв, цифр и знаков подчёркивания. MATLAB распознаёт в именах переменных до 31 символа (остальные игнорирует) и различает регистр символов. Нажатие клавиши Enter заставляет систему MATLAB вычислить значение выражения и показать результат, как это показано на рисунке.
Чтобы не перегружать излишними подробностями своё командное окно, MATLAB по умолчанию использует формат short для вывода вещественных чисел, при котором показываются только четыре десятичные цифры после запятой. Если требуется полное представление, то нужно ввести с клавиатуры команду format long после чего набрать имя переменной res, в которой записан результат вычислений. Нажав клавишу ENTER, получим более подробную информацию:
res =
-93.29900636942675
Теперь все результаты вычислений будут показываться с такой высокой точностью в течение данного сеанса работы MATLABа. Если требуется до прекращения текущего сеанса работы вернуться к старой точности визуального представления вещественных чисел в командном окне MATLABа, нужно ввести и исполнить (нажав клавишу ENTER) команду format short
Другим интересным форматом является показ вещественных чисел в виде обыкновенных дробей, для чего вводится команда format rat
Ранее вычисленная переменная res, будет показана в следующем виде:
res =
-9050/97
Ну и, наконец, если операнды и результаты вычислений являются целыми, то хотя они и представляются в памяти машины так же, как и дробные числа, визуально в командном окне MATLABа они показываются в виде целых чисел. Это иллюстрируется следующим рисунком,
на котором специальным именем ans обозначен (это стандартное обозначение) результат вычисления выражения, если он не был присвоен какой-либо переменной с другим именем
Над вещественными числами производятся арифметические операции сложения, вычитания, умножения и деления, для которых используются знаки +, -, * и /. Кроме того, есть ещё операция возведения в степень, обозначаемая значком ^. Результаты применения этой операции показаны ниже:
5 ^ 2
ans =
25
или
t = ans ^ (0.5)
t =
5
Приоритет в выполнении арифметических операций обычный: сначала — возведение в степень, затем — умножение и деление, и потом — сложение и вычитание. Операции одинакового приоритета выполняются в порядке слева направо, но круглые скобки могут изменить этот порядок.
Помимо арифметических операций используются ещё операции отношения и логические операции.
Операции отношения сравнивают между собой два операнда по величине. Эти операции записываются следующими знаками или комбинациями знаков:
< | Меньше | |
<= | Меньше или равно | |
> | Больше | |
>= | Больше или равно | |
== | Равно | |
~= | Не равно |
Здесь выражение a вырабатывает единицу в силу того, что величина переменной a действительно меньше величины переменной b (истина).
Выражение c ~= b является истинным, так как на самом деле c, равное 3, не равно b, которое равно двум. В итоге оно вырабатывает значение 1.
Последнее выражение, b == a, не является истинным и вырабатывает 0.
В результате переменная res, равная сумме значений этих трёх выражений, оказывается равной двум.
Операции отношения имеют более низкий приоритет по отношению к арифметическим операциям, поэтому рассмотренная выше переменная res равна сумме значений трёх операций отношения только потому, что мы заключили эти операции в круглые скобки. Очень важно всегда помнить об этом, так как отсутствие круглых скобок может привести к изменению результата. Например, если a=1, b=1, c=3, то выражение
c + (b == a)
равно 4, в то время как выражение без круглых скобок
c + b == a
равно 0.
Теперь обратим внимание на роль точки с запятой в системе MATLAB. Точка с запятой может использоваться для разных целей. Когда мы вводим с клавиатуры некоторое выражение (оно расположено после знака приглашения >>) и нажимаем клавишу ENTER, то MATLAB прозводит вычисление этого выражения и выводит результат в своё командное окно. Если мы не хотим тотчас же видеть результат вычислений (это характерно, например, для промежуточных результатов), то в конце введённого выражения следует поставить точку с запятой, и только после этого нажать ENTER.
Кроме того, если мы хотим за один раз, то есть одним нажатием клавиши ENTER вычислить несколько разных выражений, а их значения присвоить разным переменным, то эти выражения следует отделить друг от друга точкой с запятой, как это и показано на предыдущем изображении командного окна системы MATLAB.
Последней группой операций являются логические операции, перечисленные в следующей таблице:
& | И | |
| | ИЛИ | |
~ | НЕ |
Логические операции трактуют свои операнды как "истинные" (не равные нулю) или "ложные" (равные нулю). Если оба операнда операции "И" истинны (не равны нулю), то результат этой операции равен 1 ("истина"); во всех остальных случаях операция "И" вырабатывает значение 0 (ложь). Операция "ИЛИ" вырабатывает 0 (ложь) только в случае, когда являются ложными (равными нулю) оба операнда. Наконец, операция "НЕ" инвертирует "ложь" на "истину" и наоборот. То есть, если её операндом является ненулевое число, то эта операция вырабатывает 0, а если операнд нулевой, то тогда результатом применения операции "НЕ" будет единица.
Логические операции имеют самый низший приоритет.
В одном и том же выражениии можно использовать все перечисленные операции: арифметические, логические и операции сравнения. Последовательность выполнения операций определяется их расположением внутри выражения, их приоритетом и наличием круглых скобок
Когда Вы запускаете MATLAB и начинаете производить вычисления, в командном окне показываются вводимые с клавиатуры числа, переменные (через их имена), результаты вычислений. Обычно вычисления повторяются вновь и вновь: вводятся с клавиатуры новые числовые данные и новые символьные выражения. В результате в окне MATLABа не хватает свободного места и производится "скроллирование" ("протяжка"; "прокрутка") — все строки сдвигаются на одну позицию вверх, так что самая верхняя строка покидает область видимости, а в самом низу окна появляется свободная строка для ввода новых данных. Естественно, эта строка содержит знак приглашения >>.