Відмінності між версіями «MATLAB та його інтеграція в інші програмні додатки, ООП в MATLAB»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Форматовані файли (текстові))
(Бінарні файли)
Рядок 50: Рядок 50:
 
Функції <b>fscanf</b> та <b>fprintf</b> ведуть себе аналогічно до подібних функцій в мовах програмування С/С++, має аналогічні специфікатори форматів даних, та спеціальні символи в рядках форматів, тому ми не будемо на цьому докладно зупинятися.
 
Функції <b>fscanf</b> та <b>fprintf</b> ведуть себе аналогічно до подібних функцій в мовах програмування С/С++, має аналогічні специфікатори форматів даних, та спеціальні символи в рядках форматів, тому ми не будемо на цьому докладно зупинятися.
  
==Бінарні файли==
+
 
<B>Запис в файл: </B><br>
+
– fwrite(fp,A,’тип памяті’);  fp – показник; А – дані які записуються;<br>
+
    Тип памяті: double, float64, int & other<br>
+
<B>Читання:</B>
+
– fread(fp,A,’тип памяті’);
+
  
 
==Текстові файли==
 
==Текстові файли==

Версія за 09:15, 5 червня 2009

Matlab & MS Word

  1. Matlab дає дуже великі можливості інтеграції з іншими програмами.
  2. Одна з можливостей: Інтеграція в MS Word, створення M-книг; вона дає можливість використовувати всі можливості середовища Matlab в Word
  3. Для інтеграції потрібно використати модуль notebook
  4. Алгоритм створення M-book
    • команда notebook в командному вікні MATLAB;
    • у створеному автоматично вікні Word набираємо команди, які нам необхідні для виконання, набираємо за всіма правилами набору MATLAB;
    • Виділяємо необхідні строки і натискаємо комбінацію клавіш Alt+D, або у меню Notebook натискаємо команду Define Input Cell, в результаті наш текст буде виділений і поміщений в щось схоже на комірку;
    • Запускаємо нашу комірку на виконання комбінацією клавіш Ctrl + Enter або у меню Notebook команду Evaluate Cell;
    • Отримаємо результат, який поміститься відповідно під нашею коміркою;

Matlab: робота з файлами

При обробці даних часто виникає необхідність зберігання як вхідних так і вихідних даних. Для цього зазвичай використовують файли. Файли – це досить широко використовувані об’єкти MATLAB. Робота з файлами в MATLAB досить схожа на роботу з файлами в мові програмування високого ріня С++. Покажемо коротко аналогії та відмінності.

Відкриття та закриття файлів

Файл звичайно є деякою сукупністю даних, об’єднаних одним іменем. Тип файлу, як правило, визначається його розширенням. Будемо розглядати файл як одне ціле, без врахування особливостей операційних систем (напр.. для Windows – фрагментація).
Перед використанням будь-якого файлу він повинен бути відкритий, а по закінченню – закритий. Багато файлів може бути відкрито та доступно для читання одночасно. Розглянемо команди відкриття та закриття файлів.
Розглянемо відмінність у відкритті файлів та методом пошуку файлів за іменем в середовищі MATLAB від С++.
Команда open mane, де mane повинно містити масив символів або символьну змінну, відкриття здійснюється залежно від аналізу параметра mane та розширення в імені.
Якщо файл з розширенням існує в каталозі MATLAB, то відкривається той файл, який повертається командою which name, якщо нема – то файл із файлової системи. Якщо файл не має розширення імені, то він відкривається тою програмою, формат файлів якої був би знайдений функцією which (‘name_file’). По замовчуванню для всіх файлів крім MATLAB-файлів, визивається openother. Open визиває функції openxxx, де xxx – розширення файлу. Виключення – змінні робочої області, для яких викликається openvar, та малюнки для яких викликається openim.

Двійкові файли

Двійковими або бінарними файлами називають файли, дані яких представляють собою машинні коди. Основні операції с такими кодами аналогічні С++, коротко їх розглянемо:

  1. Відкриття файлів “індеф_ф”=fopen(‘ім`я_ф’,’флаг’) – “індеф_ф” - ідентифікатор, на відміну від С++ не оголошується; цією функцією відкривається файл з іменем ‘ім`я_ф’, та флагом:
    • r’ – відкриває файл для читання;
    • ‘r+’ – відкриває файл для читання та запису;
    • ‘w’ – видалення вмісту існуючого файлу або створення нового та відкриття його для запису;
    • ‘a’ – створення та відкриття нового файлу або відкриття існуючого для запису з добавленням в кінець файлу;
  2. Закриття файлу fclose(‘індеф_ф’);
  3. [A, count]=fread(fid,size,precision) – считує двійкові дані з заданого файлу fid та поміщає їх в матрицю А. Вихідний аргумент count містить число правильно зчитаних (удачно) елементів, sizе – аргумент який визначає кількість зчитуваних даних, якщо він не визначений, зчитування іде до кінця файлу.
  4. count=fwrite(fid,A,precision) – записує елементи матриці А в файл з заданою точністю. Дані записуються в файл по стовпцям, вихідний елемент містить число правильно записаних елементів. Добавляє символ «возврат каретки» перед початком нового рядка.

Форматовані файли (текстові)

Файли, які містять форматовані дані, називаються форматованими файлами або текстовими. Всі функції використовувані для роботи з цими файлами аналогічні функціям для текстових файлів в С++.

  1. line=fgetl(fid) – повертає рядок з файлу з ідентифікатором fid з видаленням символу кінця рядку. Якщо функція знаходить кінець файлу, то вона повертає значення -1;
  2. line=fgets(fid) – повертає рядок з файлу з ідентифікатором fid, не видаляючи символ кінця рядка;
  3. line=fgets(fid,nchar) – повертає не більше nchar перших символів рядка. Після признака кінця рядка чи файла символи більше не зчитуються;
  4. count=fprintf(fid,format,A,…) – форматує дані, що містяться в дійсній частині матриці А, під контролем рядка format та записує їх в файл з ідентифікатором fid. Повертає число записаних байтів.
  5. A=fscanf(fid,format) – читає всі дані з файла з ідентифікатором fid, перетворює їх згідно значення параметра format і повертає у вигляді матриці А
  6. [A,count]=fscanf(fid,format,size) – зчитує кількість даних, визначених параметром size, перетворює їх згідно з параметром format і повертає разом з кількістю успішно зчитаних елементів count. Параметр size – це деякий аргумент, визначаючий кількість зчитаних даних.

Функції fscanf та fprintf ведуть себе аналогічно до подібних функцій в мовах програмування С/С++, має аналогічні специфікатори форматів даних, та спеціальні символи в рядках форматів, тому ми не будемо на цьому докладно зупинятися.


Текстові файли

Запис:
– Count=fprintf(fp,format,A…) форматовані дані А, під контролем format, записує в файл інд fp;
Читання:
– A=fscanf(fp,format);
Є і інші аналогичні до С функції роботи з файлами

ООП та MatLab

  1. ООП в Matlab має досить добре представлення. 3 головні принципи ООП мають реалізацію, також є можливість агрегування об`єктів
  2. Представлені 7 основних класів:
    • Double
    • sparse (двовимірні числові масиви і компл матриці)
    • char
    • struct
    • cell (масив комірок)
    • javaarray (масиви Java)
    • function_handle (дескріптори функцій)

Створення Класа Об`єктів або Об`єктів

  1. class(OBJ) – повертає клас вказаного об`єкта;
  2. OBJ=class(S,’class_name’,PAR1,PAR2…) – створює об`єкт класа ‘class_name’ на базі структури S та батьківських об`єктів PAR1, PAR2;
  3. OBJ=class(struct[ ], -||-) – не може мати полів крім унаслідуваних від батьківських об`єктів;

Належність Об`єкта Даному Класу

isa(OBJ,’name_class’) – повертае 1 якщо належить, 0 – не належить; Але не знаходить клас logical, для нього спеціальна ф-я – islogacal;
Приклад:

  >>X = [1 2 4];
>>isa(X,’char’);
ans =
0

Інші ф-ї ООП

  1. methodsview & methods ‘class_name’ – отримання списка методів даного класу;
  2. Handle-ф-ї – особливі об`єкти, не містять параметрів в загальному, обчислення проходить за допомогою ф-ї:
  feval(fhsin,1);
ans =
0.8415

Inline – функції – клас функцій здатний задавати функції користувача: >>sc2=inline(‘sin(x).^2+cos(y)^.2’) sc2 =

Inline function: sc2(x,y)=sin(x).^2+cos(y)^.2

Тести

1. Яка команда (модуль) запускає інтеграцію Matlab в MS Word:

  1. bench
  2. lookfor
  3. notebook
  4. noteabook

2. Форматування в MS Word комірок Matlab:

  1. Noteabook/Noteabook Option
  2. Ctrl+D
  3. Notebook/Notebook Option
  4. Notebook/Evaluate Cell

3. Запуск комірки MS Word на виконання:

  1. Ctrl+Enter
  2. Ctrl+D
  3. Alt+Enter
  4. Ctrl+Win+L

4. Функція відкриття/створення файлу:

  1. FILE* fp; fp=fopen(‘ім`я_ф’,’флаг’);
  2. fp=fopen(‘ім`я_ф’,’флаг’);
  3. fp=write(‘ім`я_ф’,’флаг’);
  4. fclose(fp)

5. Яка функція перевіряє належність логічного об`єкта до певного класу:

  1. isa
  2. islogacal
  3. logacal
  4. inseid

6. inline - функція - що це?

  1. аналог ф-ї Handle
  2. клас функцій здатних замінювати клас
  3. Alt+Enter
  4. Ctrl+Win+L

7. Як можна отримати список методів даного класу? (точна відповідь)

  1. methodsview 'class name'
  2. methodswiev & methods 'class name'
  3. method & methodsview 'class name'
  4. methods & methodsview 'class name'

8. Які параметри функції plot()?
9. Дайте розгорнуту відповідь на тему: "Matlab & MS Word", які функції ядра не працюють в разі інтеграції?