84800

Проверка алгоритма и визуализация данных приложения С++ с использованием команд MatLab

Курсовая

Информатика, кибернетика и программирование

MATLAB позволяет управлять, фильтровать и осуществлять предварительную обработку данных. Вы можете исследовать данные для нахождения трендов, проверки гипотез, построения описательных моделей. В MATLAB включены функции для фильтрации, сглаживания, свертки и быстрого преобразования Фурье (FFT).

Русский

2015-03-22

143.5 KB

8 чел.

КУРСОВАЯ РАБОТА

по дисциплине «Программирование»

на тему: «Проверка алгоритма и визуализация данных приложения С++ с использованием команд MatLab».

Выполнила:

студентка группы М-32

Травина Елена Владимировна

Проверила:

Васильева Ирина Ивановна


Содержание

[1] Введение

[2] 1.Взаимодействие VC++ и Matlab

[3] 2.Библиотеки Matlab для математических вычислений и представления графических данных

[4] 3. Методы вызова функций Matlab из среды VC++.

[5] 4.Практическая часть

[6] Список используемой литературы


Введение

MATLAB- это высокоуровневый язык и интерактивная среда для программирования, численных расчетов и визуализации результатов. С помощью MATLAB можно анализировать данные, разрабатывать алгоритмы, создавать модели и приложения. Язык, инструментарий и встроенные математические функции позволяют вам исследовать различные подходы и получать решение быстрее, чем с использованием электронных таблиц или традиционных языков программирования, таких как C/C++ или Java. MATLAB широко используется в таких областях, как обработка сигналов и связь, обработка изображений и видео, системы управления, автоматизация тестирования и измерений, финансовый инжениринг, вычислительная биология и т.п. Более миллиона инженеров и ученых по всем миру используют MATLAB в качестве языка технических вычислений.

Анализ данных

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

Визуализация данных

MATLAB предоставляет набор встроенных функций построения 2D- и 3D-графиков, а также функции объемной визуализации. Эти функции можно использовать для визуализации и как средство представления обрабатываемой информации. Графики могут быть созданы как интерактивно, так и программно. В галерее графиков MATLAB есть примеры множества способов графического представления данных.


1.Взаимодействие VC++ и Matlab

Для решения любой задачи управления реальными объектами необходим драйвер, обеспечивающий взаимодействие аппаратных и программных средств. Однако найти драйвер, подходящий для сбора информации и управления в реальном времени, чрезвычайно трудно. Очень часто пользователям бывает необходимо получать данные от систем реального времени, используя программы, написанные на C или VC++, и преобразовывать их в формат, пригодный для обработки в среде Matlab. В таких случаях приходится отказываться от режима реального времени, что создает очень большие неудобства. В управляющих системах часто возникает задача обработки матриц, которые формируются на основе данных, полученных в результате измерений. Организовать обработку матриц в среде C или VC++ достаточно трудно. Данные можно преобразовать в формат, пригодный для обработки в Matlab, однако при отсутствии интерфейса между программами не удается осуществлять обработку в реальном времени. Используя средства взаимодействия VC++ и Matlab, можно реализовать сложные алгоритмы обработки данных в системах реального времени. Посредством программ, написанных на C или VC++, легко реализовать низкоуровневое взаимодействие с аппаратными средствами. Эти программы могут использоваться для передачи команд устройствам и обмена данными с ними. При получении данных программы, написанные на C или VC++, могут обращаться к инструментальным средствам Matlab, которые, в свою очередь, выполнят необходимую обработку данных. Результаты обработки можно снова передать программе на C или VC++, которая использует их для управления объектом.

Еще одним преимуществом системы, включающей средства VC++ и Matlab, является возможность представления данных в разных форматах. В управляющих и измерительных системах часто бывает необходимо составлять различные графики. Matlab- удобный инструмент для визуализации данных. Он обеспечивает создание графиков 1D, 2D и 3D. Реализовать трехмерную графику средствами C или VC++ чрезвычайно трудно. Интерфейс между VC++ и Matlab позволяет существенно повысить уровень систем сбора и анализа данных. При этом становится возможным решать сложные задачи обработки в реальном времени.

2.Библиотеки Matlab для математических вычислений и представления графических данных

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

Обращаясь к функциям Matlab, можно относительно просто выполнять сложные математические расчеты и строить графики. Разработчик, пытающийся решить задачу представления графики с VC++, вынужден самостоятельно реализовывать сложные алгоритмы. Преодолеть трудности можно, используя интерфейс между Matlab и VC++, т.е. применяя для создания независимого приложения средства Matlab Compiler, C/C++ Math Library и C/C++ Graphic Library.

Среда разработки Matlab

Для создания независимого приложения можно использовать следующие средства.

  •  Matlab Compiler 2.1 (или более новую версию);
  •  Matlab C/C++ Math Library;
  •  Matlab C/C++ Graphic Library.

Matlab Compiler является основным инструментом разработки независимых приложений. Он выступает в роли инструмента, позволяющего преобразовывать файл M-кода в исходный код C или C++. Matlab C/C++ Math Library и Matlab C/C++ Graphic Library представляют собой динамически связываемые библиотеки. Они предоставляют разработчику встроенные математические и графические функции Matlab. Если в приложении не выполняются математические расчеты и не используются графические функции, необходимости в данных библиотеках нет.

После установки Matlab Compiler, Matlab C/C++ Math Library и Matlab C/C++ Graphic Library необходимо настроить среду разработки, используя для этой цели команду Задать данную команду можно в ответ на приглашение Matlab;  также можно сделать это в окне DOS. При вызове команды mbuild выполняются следующие действия. Программа mbuild определяет местонахождение компилятора ANSI C или C++ и копирует данные о его расположении в каталог, содержащий профили пользователя. Впоследствии, когда Matlab Compiler обращается к mbuild для вызова компилятора C и C++, записанные данные используются для его поиска. Программа mbuild определяет расположение библиотек, которые могут использоваться для создания приложения. В качестве примера таких библиотек можно привести Matlab C/C++ Math Library, Matlab C/C++ Graphic Library, а также библиотеку ANSI C или C++. (Основные этапы разработки независимого приложения показаны на рис. 1.).

1.Matlab Compiler вызывается для преобразования M-кода в исходный код C или C++;

2.Matlab Compiler вызывает компилятор C или C++, используя данные о его расположении;

3.Компилятор C/C++ преобразует исходный текст программ в объектный код;

4.По окончании преобразования кода компилятор C/C++ вызывает редактор связей;

5.Редактор связей выполняет компоновку, подключая к объектному коду необходимые библиотеки, например Matlab C/C++ Math Library, Matlab C/C++ Graphic Library и библиотеку C++, и генерирует исполняемый файл приложения.

Рис. 1. Основные этапы создания независимого приложения

Matlab Compiler генерирует не только исходные тексты C/C++, но и файлы оболочки, содержащие необходимые компоненты независимого приложения, например функцию main().

Независимое приложение может быть запущено либо в окне DOS, либо в командном окне Matlab. Для запуска приложения в командном окне Matlab необходимо указать перед именем исполняемого файла символ «!». Запуская приложение в окне DOS, необходимо убедиться, что все библиотеки, используемые при выполнении программы, находятся в одном из тех каталогов, в которых система автоматически осуществляет поиск файлов.

3. Методы вызова функций Matlab из среды VC++.

Метод I

Вызов из программы на VC++ независимого приложения (файла.exe ), скомпилированного с помощью Matlab Compiler 2.1.

Метод II

Использование стратегии Matlab AddIn для встраивания функций Matlab в программную среду VC++. В среде VC++ функции Matlab могут быть модифицированы.

Метод III

Использование Matlab Engine. Данный метод эквивалентен методу ActiveX.

Метод IV

Создание функций Matlab в виде разделяемой библиотеки DLL, к которой может осуществляться обращение из программной среды VC++. При использовании любого из этих методов необходимы Matlab Compiler, Matlab C/C++ Math Library и C/C++ Graphic Library.

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

Библиотека Graphics Library применяется для реализации графических средств, например построения графиков 1D, 2D и 3D. Указанные библиотеки необходимы для организации эффективного взаимодействия программ C/C++ с Matlab.

Основным компонентом, обеспечивающим интерфейс между VC и Matlab, является Matlab Compiler- инструмент для преобразования программ и функций, написанных в формате Matlab (M-файлы или M-функции), в формат C или VC++.

Вызов независимого приложения

Компилятор Matlab Compiler 2.1 преобразует M-функции в независимое приложение (файл .exe), после чего это приложение вызывается из среды VC++. Подобному преобразованию можно подвергнуть любую M-функцию или набор функций, после чего файл приложения можно выполнить, не устанавливая библиотеки Matlab. Более того, Matlab Compiler создает исходный код C/C++ и соответствующие файлы заголовков. Это означает, что почти все M-функции, предназначенные для выполнения в среде Matlab, могут быть преобразованы в функции C/C++, пригодные для использования в среде VC++ (исключением являются функции Matlab Graphic; их нельзя непосредственно вызвать из среды VC++).

Строго говоря, из программы на VC++ можно вызвать любые функции, предназначенные для математических вычислений, например средства решения нелинейных уравнений или выполнения операций над матрицами. Графические операции представляют собой отдельный набор возможностей, предоставляемых Matlab. С их помощью можно создавать сложные графики 1D, 2D и 3D.

Стандартный способ использования графических функций Matlab предполагает компиляцию M-функций, созданных в среде Matlab, и преобразование их в независимое приложение с использованием Matlab
Compiler 2.1. Полученный исполняемый файл можно вызвать из программы на VC++ для создания графиков в реальном времени.

Листинг 1. M-функция

% Описание: функция для отображения данных

%           в реальном масштабе времени

% Входные данные:  отсутствуют

% Выходные данные:  отсутствуют

% Дата: 6/12/2014

% Имя функции: dataplot()

% Определение функции

function dataplot()

m = 1;

n = 10;

fid = fopen(  'C:\data\mdata.txt    ', ' r ');

[s] = fscanf(fid, '   %f ', [m, n])

plot( s);

grid

xlabel(' Time ');

title('Testing Program for Plotting a Response    ');

ylabel(' Response ');

Листинг 2. Содержимое файла MatlabPlot.cpp

Файл: MatlabPlot.cpp

Описание: построение графика с помощью C-функции, созданной на базе Matlab.

#include <windows.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

PROCESS_INFORMATION proInfo ;

STARTUPINFO  startInfo ;

double data_array[] = {1.2, 2.3, 3.4, 8.1, 7.3, 3.3, 2.1, 10.05, 5.88,5.77 };

// Имитация реальных данных

FILE*  fp;

void main()

{   int   i;

  DWORD ErrCode;

  char currDri[] = " C:\\Vc  ";

  char  mod[] = "C:\\MATLAB6p1\\work\\dataplot.exe   "; // Путь к файлу

  fp = fopen(" C:\\data\\mdata.txt", "w" ); // Получение дескриптора файла

     for (i=0; i<=10; i++)

     fprintf(fp, " %f ", data_array[i]);    // Запись в файл

  fclose( fp);

            // Подготовка к созданию процесса

  startInfo.cb = sizeof(STARTUPINFO);

  startInfo.cbReserved2 = 0;

  startInfo.dwFillAttribute = BACKGROUND_GREEN;

  startInfo.lpTitle = NULL;

  startInfo.dwX = CW_USEDEFAULT;

  startInfo.dwY = CW_USEDEFAULT;

  startInfo.dwXSize = CW_USEDEFAULT;

  startInfo.dwYSize = CW_USEDEFAULT;

  startInfo.dwXCountChars = 0;

  startInfo.dwYCountChars = 0;

  startInfo.lpReserved 2 = NULL;

  startInfo.lpReserved = NULL;

  startInfo.lpDesktop = NULL;

  startInfo.dwFlags = STARTF_USEFILLATTRIBUTE;

  // Создание процесса

  ErrCode =

     CreateProcess( mod,NULL,NULL,NULL,FALSE,0,NULL,

                    currDri ,&startInfo ,&proInfo );

  if (!ErrCode)

  {      ErrCode = GetLastError();

     printf("CreateProcess is failed & ErrCode = %x\n   ",

        ErrCode);

  }

  return;}

Использование Matlab AddIn

Для встраивания функций Matlab в программную среду VC++ используется Matlab AddIn. В среде VC++ функции Matlab могут быть модифицированы. Средства Matlab AddIn for Visual Studio автоматизируют задачу включения кода Matlab в программы на Visual C++. В проекте на Visual C++ устанавливаются пути к библиотекам и файлам заголовков, определяются необходимые константы и задаются библиотеки, необходимые для использования совместно с скомпилированными M-файлами. В результате работа над проектами упрощается. Matlab AddIn использует команды MCC и MEX, исключая необходимость вызова их вручную.

Matlab AddIn представляет собой мощный инструмент, который может применяться разработчиками. Создание приложений, включающих средства Matlab и C/C++, существенно упрощается за счет интеграции Matlab с Visual C++. Благодаря использованию Matlab AddIn for Visual Studio пользователь получает следующие возможности:

  •  включать M-файлы в существующие проекты Visual C++;
  •  создавать на базе M-файлов независимые приложения C или C++;
  •  создавать файлы CMEX или MMEX;
  •  создавать на базе M-файлов разделяемые библиотеки или MEX-файлы;
  •  повторно использовать M-файлы в приложениях на C/C++;
  •  непосредственно отлаживать исходные коды M-файлов. Альтернативой данному решению является отладка файлов C/C++, сгенерированных с помощью компилятора;
  •  автоматизировать процесс редактирования M-файлов и компиляции их в файлы на C/C++. Редактирование и компиляция осуществляются в среде Visual C++;
  •  проверять в процессе отладки данные, содержащиеся в составе матриц. (Visual Matrix Viewer);
  •  оформлять готовые программы в виде дистрибутивных пакетов.

Метод Matlab Engine

Данный метод эквивалентен методу ActiveX и предполагает использование библиотеки Matlab Engine для взаимодействия с функциями Matlab.

В системе Unix библиотека взаимодействует с Matlab с помощью механизма каналов. По мере необходимости используются средства удаленного вызова. В Microsoft Windows взаимодействие с Matlab происходит посредством ActiveX.

При использовании библиотеки Matlab Engine интерфейс между VC++ и Matlab существенно упрощается. Подобно управляющим элементам ActiveX, после обращения к среде Matlab и выполнения некоторых действий VC++ сохраняет контроль над выполнением программ. Еще одно преимущество использования библиотеки Matlab Engine состоит в том, что при этом нет необходимости хранить данные в файле в среде VC++ и извлекать их, открывая файл в среде Matlab. Вместо этого вы можете сформировать данные в программе VC++ и вызывать M-функции, передавая им информацию в виде массивов.

Оформление функций Matlab в виде DLL

Функция Matlab создается в виде разделяемой библиотеки DLL, к которой осуществляется обращение из программной среды VC++.

4.Практическая часть

Создание автономного приложения и библиотеки

Автономные приложения запускаются без помощи интерпретатора MATLAB и даже если MATLAB не установлен на системе. Однако автономные приложения требуют наличия во время выполнения математических библиотек MATLAB. Рассмотрены различия между MEX-файлами и автономными приложениями, создание C/C++-автономных приложений, распространение автономных приложений, создание общедоступных библиотек.

Подготовка к выполнению задачи

Для создания автономного C/С++-приложения на системе должны быть установлены:

  •  MATLAB,
  •  Компилятор MATLAB,
  •  C/С++ компилятор,
  •  Математическая библиотека MATLAB C/C++.

Исходный текст для автономной C/С++-программы состоит либо полностью из m-файлов, либо из некоторой комбинации m-файлов, MEX-файлов и файлов исходного текста на C или C++.

Компилятор MATLAB преобразовывает входные m-файлы в исходный C/С++-код. После компилирования этого исходного С/C++-кода, полученные в результате объектные файлы связываются с Математической библиотекой

MATLAB C/C++.

На обеих операционных системах Windows и UNIX для создания автономного C и C++-приложения необходимо проверить, что mbuild может создавать автономные приложения и что Компилятор MATLAB может связать объектные файлы с подходящими библиотеками для образования автономного приложения.

Для облегчения процесса настройки и создания приложения MathWorks предоставляет bat-файл mbuild. Чтобы выбрать C или C++-компилятор и сделать его установленным по умолчанию, используется команда mbuild -setup. Другое использование опции setup- для изменения параметров настройки файла опций.

Создание автономного приложения

Самый простой способ создания автономного приложения состоит в том, чтобы записать весь исходный текст программы в одном или нескольких m-файлах или MEX-файлах. Создание кода приложения в m-файлах позволяет использовать в своих интересах среду разработки MATLAB. Затем, после получения правильно работающего m-файла программы, код программы компилируется и встраивается в автономное приложение.

Для трансляции М-файла, например mymfile.m, в C и создания автономной программы, которая может выполняться без MATLAB, используется команда:

mcc -m mymfile

Для трансляции М-файла, например mymfile.m, в C++ и создания автономной программы, которая может выполняться без MATLAB, используется команда:

mcc -p mymfile

Рассмотрим простое приложение, исходный текст которого состоит из двух m-файлов, mrank.m и main.m. Этот пример предполагает C-код программы (для C++-кода программы используется аналогичный подход).

В данном примере функция mrank.m вычисляет вектор r целых чисел- это ранги матриц магических квадратов, например r(3) есть ранг магического квадрата 3×3. Важно, что строка r = zeros(n, 1) распределяет память, чтобы помочь работе Компилятора.

function r = mrank(n)

r = zeros(n,1);

for k = 1:n

r(k) = rank(magic(k));

end

Функция main.m содержит основную "main"-процедуру, которая вызывает mrank и затем печатает результат:

function main

r = mrank(5)

Чтобы откомпилировать это только в код программы, который может быть встроен в автономное приложение, вызываем Компилятор MATLAB:

mcc -mc main mrank

Флажок опции -m заставляет Компилятор MATLAB создавать C-исходные тексты для автономных приложений, а флаг-c указывает, что нужно создать только С-код, но не приложение (флажок-c запрещает вызов mbuild.). В этом случае Компилятор MATLAB создает следующие C-файлы:

  •  main.c- содержит C-код функции mlfMain;
  •  main.h- заголовочный файл функции mlfMain;
  •  mrank.c- содержит C-код функции mlfMrank;
  •  mrank.h- заголовочный файл функции mlfMrank;
  •  main-main.c- содержит интерфейс main-функции (main-обертка).

Чтобы создать выполнимое приложение, можно использовать mbuild для компиляции и компоновки этих С-файлов. Или можно полностью автоматизировать процесс создания, используя следующую команду для m-файлов без опции- c:

mcc -m main mrank

В этом случае в дополнение к указанным выше файлам будет создан еще файл main.exe.

Для создания C++-кода программы нужно добавить -L cpp к предыдущим командам и использовать C++-компилятор вместо C-компилятора.

Исходный m-файл может содержать обращения к другим m-функциям, не входящим в Математическую библиотеку MATLAB.

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

mcc -m main

Компилятор сам найдет функцию mrank, которую вызывает m-функция main.

Смешивание m-файлов и программ на C либо C++.

Иногда при создании автономного приложения некоторая часть приложения представлена в виде одной или более функций m-файлов, а другая часть – непосредственно в C или C++-коде. Чтобы создать автономное приложение таким способом, нужно знать, как вызвать внешние C или C++-функции, созданные Компилятором MATLAB, и как обработать результаты этих C или C++-функций.

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

Рассмотрим простое приложение, исходный текст которого состоит из mrank.m и mrankwin.c. Файл mrank.m содержит функцию, которая вычисляет вектор рангов матриц магических квадратов порядка от 1до n. Код программы в файле mrankwin.c вызывает функцию mrank и выводит в отдельном окне значения, которые mrank возвращает. В результате получается приложение, которое принимает в командной строке размер n матрицы магического квадрата и выводит ранги этих матриц по порядку от 1 до n. Если в строке не указано значение n, то считается n = 12.

Процесс создания.

Для создания этого автономного приложения необходимо скомпилировать m-код и создать файл обертки библиотеки. Для этого спользуется команда:

mcc -t -W lib:Pkg -T link:exe -h mrank mrankwin.c libmmfile.mlib

Компилятор MATLAB создает C-файлы исходного кода mrank.c, mrank.h для функции mrank.m и файлы библиотеки: pkg.c, pkg.h, pkg.exports и pkg.mlib.

Далее команда вызывает mbuild для компиляции исходных файлов-результатов, созданных компилятором (mrank.c, Pkg.c, Pkg.h), с существующим C-исходным файлом (mrankwin.c) и связи с требуемыми библиотеками. В приведенной схеме коды С производит mcc, а остальную часть выполняет mbuild.

Хотя функция имеет имя mrank, после компиляции файла mrank.m она будет вызываться lfMrank.

#include <stdafx.h>

#include <stdio.h>

#include <math.h>

#include "matlab.h"

#include <windows.h>

/*Объявление ф-ции mlfMrank */

extern mxArray * mlfMrank( mxArray * );

static int totalcnt=0;

static int upperlim=0;

static int firsttime=1;

char *OutputBuffer;

void WinPrint( char *text )

{

int cnt;

if (firsttime) {

OutputBuffer = (char *)mxCalloc(1028, 1);

upperlim += 1028;

firsttime = 0;

}

cnt = strlen(text);

if (totalcnt + cnt >= upperlim) {

char *TmpOut;

TmpOut = (char *)mxCalloc(upperlim + 1028, 1);

memcpy(TmpOut, OutputBuffer, upperlim);

upperlim += 1028;

mxFree(OutputBuffer);

OutputBuffer=TmpOut;

}

strncat(OutputBuffer,text, cnt);

}

void WinFlush(void)

{ MessageBox(NULL, OutputBuffer, "MRANK", MB_OK);

mxFree(OutputBuffer); }

WINAPI

WinMain( HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdLine, int

nCmdShow )

{

#define MAXCMDTOKENS 128

LPSTR argv[MAXCMDTOKENS];

int argc = 0;

mxArray *N; /*Матрица для содержания n*/

mxArray *R; /*Результат*/

int n; /* Аргумент */

PkgInitialize(); /*Инициализация библ-ки M-функции*/

/*Установка обработчика печати*/

mlfSetPrintHandler(WinPrint);

/*Обработка ввода аргумента из командной строки*/

argv[argc]= "mrank.exe";

argv[++argc] = strtok(lpszCmdLine, " ");

while (argv[argc] != NULL) argv[++argc] = strtok(NULL, " ");

if (argc >= 2) {

n = atoi(argv[1]);

} else {

n = 12;

}

/*Создание массива 1x1 для n*/

N = mxCreateDoubleMatrix(1, 1, mxREAL);

*mxGetPr(N) = n;

/*Вызов mlfMrank*/

R = mlfMrank(N);

/*Печать результата*/

mlfPrintMatrix(R);

WinFlush();

/*Освобождение памяти*/

mxDestroyArray(N);

mxDestroyArray(R);

PkgTerminate(); /*Выход из библиотеки*/

return(0);

}

Ядром mrankwin.c является вызов функции mlfMrank. Большая часть того, что стоит перед этим вызовом, является кодом, создающим входной аргумент к mlfMrank. Большая часть того, что стоит после этого вызова,- это код программы для отображения вектора, который mlfMrank возвращает. Сначала программа должна вызвать функцию инициализации библиотеки, созданную компилятором:

PkgInitialize();/*Инициализация библиотеки m-функции */

Согласно объявлению:

extern mxArray * mlfMrank( mxArray * );

функция mlfMrank ожидает один входной параметр и возвращает одно значение.

Все параметры ввода и вывода- указатели на тип данных mxArray. Для создания и управления переменными mxArray * в коде программы на C можно использовать процедуры Математической библиотеки MATLAB C/C++. Например, чтобы создать mxArray * переменную N 1-на-1 с действительными данными, mrankwin вызывает mxCreateDoubleMatrix:

N = mxCreateDoubleMatrix(1, 1, mxREAL);

ициализированную переменную N в качестве единственного входного аргумента.

R = mlfMrank(N);

mlfMrank возвращает указатель в mxArray * переменную R.

Для вывода R на печать используется функция mlfPrintMatrix Математической библиотеки MATLAB через процедуру WinFlush();


Список используемой литературы

  1.  П.Н. Палухин, В.В. Поддубный Технология использования MATLAB-программ в средах визуального программирования C/C++//ТГУ-Томск, 2003-30 апреля
  2.  Инг Бей Взаимодействие разноязыковых программ. Руководство прграммиста. М.: Вильямс, 2005.- 880с.
  3.  Ануфриев И.Е. и др. MATLAB 7/Смирнов А.Б., Смирнова Е.Н.-Спб.:БХВ-Петербург, 2005-1104 с.
  4.  Подкур М. Л. и др. Программирование в среде Borland C++ Builder с математическими библиотеками MATLAB С/С++/ Подкур П. Н., Смоленцев Н. К.- М.: ДМК Пресс, 2006.- 496 с.

Дополнительные ресурсы:

  1.  http://cyberleninka.ru/article/n/tehnologiya-ispolzovaniya-matlab-programm-v-sredah-vizualnogo-programmirovaniya-c-c#ixzz3La1VhM3x 
  2.  www.sl-matlab.ru/about

Елец

2014г.


 

А также другие работы, которые могут Вас заинтересовать

57779. ЗАСТОСУВАННЯ ПОХІДНОЇ ДО РОЗВ’ЯЗУВАННЯ ПРИКЛАДНИХ ЗАДАЧ 201.5 KB
  МЕТА: перевірити знання учнями формул для знаходження похідної та вміння застосовувати метод диференціального числення до розв’язування прикладних задач вміння виділяти етапи в розв’язуванні прикладних задач...
57780. Экстремальные задачи 2.81 MB
  Цель: ознакомить учащихся с понятием экстремальные задачи; составить алгоритм их решения с помощью производной; раскрыть область применения производной, показать, что производная – способ исследования процессов действительности и современного производства.
57781. Застосування похідної до дослідження функції 582.5 KB
  На дошці учень виконую вправу: знайти максимум функції. Перше завдання детектива Кожен учень отримує картку із завдання дослідити функцію. За виконання цього завдання учень отримує різну зарплатню оцінку в залежності від складності завдання...
57782. Похідна та її застосування 76 KB
  Мета проекту: показати широке застосування похідної; довести що похідна засіб дослідження процесів дійсності і сучасного виробництва; розвивати вміння досліджувати систематизувати вивчені факти...
57783. Применение производной к исследованию функции 1.89 MB
  Цели урока: сформировать навыки исследования и построения графиков функции с помощью производной. Учитель записывает на доске а ученики в тетради: Применение производной при исследовании функции.
57784. Похідна та її застосування 89 KB
  Мета: Узагальнення та систематизація знань, вмінь та навичок учнів з теми; формування вмінь працювати самостійно, спілкуватись, допомагати іншим, аналізувати ситуацію; розвиток загально навчальних навичок, творчого...
57785. Застосування похідної в різних галузях науки 1.1 MB
  Мета: Навчальна: дати учням всебічні поглиблені і розширені знання про предмет вивчення його цілісну картину досягти засвоєння учнями систематичних знань про поняття похідної її геометричний та фізичний зміст.
57786. Польща в 20-х роках ХХ століття 76.5 KB
  Мета уроку: охарактеризувати процес відновлення державної незалежності Польщі; розкрити роль Ю. Очікуванні результати: Після уроку учні зможуть: пояснювати обставини за яких відбулося відновлення Польщі...
57787. Пошук інформації в Інтернеті 113 KB
  Мета: розглянути пошукові системи мережі Інтернет правила пошуку інформації в глобальній мережі Інтернет сформувати вміння пошуку необхідної інформації розвивати навички роботи у мережі виховувати інформаційну культуру учнів.