Файлови функции и файлови програми
Вграденият програмен език MatLab е съвсем прост, съдържа необходимия минимум конструкции, които са описани в следващия параграф. Преди да програмирате в MatLab, трябва да разберете, че всички програми могат да бъдат или файлови функции, или файлови програми. Програмният файл е текстов файл с разширение m (M-файл), който съдържа MatLab команди и оператори. Нека да видим как да създадем проста файлова програма.
Листинг 5.1. Най-простата файлова програма
Има няколко начина за стартиране на програма или част от нея. Първият и най-простият е да изберете оператори с помощта на мишката, задържане на левия бутон или използване на клавишите със стрелки 1,
и изберете Evaluate Selection от меню Изглед (или натиснете). Откроените изрази се изпълняват последователно, точно както ако са въведени в командния ред. Очевидно е, че е по-удобно да работите в M-файл, отколкото от командния ред, тъй като можете да запазвате програмата, да добавяте изрази, да изпълнявате отделни команди, без да преминавате през историята на командите, както в случая на командния ред.
След като програмата бъде записана в М-файл, например в myprog.m, за да я стартирате, можете да използвате елемента от менюто Инструменти Изпълнение или просто да въведете името на М-файла (без разширението) в командата линия и натиснете, т.е. изпълнете като обичайната команда MatLab. При тези методи за стартиране на програмата трябва да се вземе предвид важно обстоятелство - пътят до директорията с М-файла трябва да е известен на MatLab. Направете текущата директория, съдържаща файла myprog.
В MatLab 5.3 в менюто Файл на работната среда отидете на елемента Задаване на път ... Появява се диалоговият прозорец Браузър за път. В реда за въвеждане на текущата директория задайте необходимата директория. Използвайте бутона вдясно от реда за въвеждане, за да изберете директория.
В MatLab 6.x текущата директория се инсталира от прозореца Current Directory на работната среда. Ако този прозорец отсъства, изберете елемента Текуща директория от менюто Изглед на работната среда. За да изберете желаната директория на диска, щракнете върху бутона, разположен вдясно от падащия списък.
»A = [0,1 0,4 0,3 1,9 3,3];
тогава програмният файл, съдържащ редовата лента (a), ще изгради колонна диаграма на вектора a (разбира се, ако не е предефиниран в самата файлова програма).
Файловите функции се различават от файловите програми по това, че могат да имат входни и изходни аргументи и всички променливи, дефинирани във файловата функция, са локални и не се виждат в производствената среда. M-файлът, съдържащ функционалния файл, трябва да започва с заглавка, последвана от MatLab изрази. Заглавката се състои от думата функция, списък на изходните аргументи, името на функционалния файл и списък на входните аргументи. Аргументите в списъците са разделени със запетаи. Листинг 5.2 съдържа пример за проста файлова функция с два входни и един изходен аргумент.
Листинг 5.2. Функция на файла Mysum
При извикване на файловата функция mysum се случиха следните събития:
входният аргумент a получи стойността 2;
входният аргумент b става 3;
сумата от a и b е записана в изходния аргумент c;
стойността на изходния аргумент е получена от променливата на средата и резултатът е показан в командния прозорец.
Почти всички функции на MatLab са файлови функции и се съхраняват в М-файловете със същото име. Функцията sin позволява две опции за повикване: sin (x) и y = sin (x), в първия случай резултатът се записва в inans, а във втория - в променливата y. Нашата функция mysum се държи по същия начин. Освен това входните аргументи на mysum могат да бъдат масиви със същия размер или масив и число.
Нека да видим сега как да създадем функционален файл с множество изходни аргументи. Списъкът с изходни аргументи в заглавката на файловата функция е затворен в квадратни скоби, а самите аргументи са разделени със запетая. Като пример, Листинг 5.3 показва файловата функция quadec, която, като се имат предвид коефициентите на квадратно уравнение, намира своите корени.
Листинг 5.3. Файлова функция за решаване на квадратно уравнение