coder.load

Загрузите константы времени компиляции из MAT-файла или ASCII-файла в рабочую область вызывающей стороны

Описание

пример

S = coder.load(filename) константы времени компиляции загрузок от filename.

  • Если filename MAT-файл, затем coder.load переменные загрузок из MAT-файла в массив структур.

  • Если filename ASCII-файл, затем coder.load данные о загрузках в массив с двойной точностью.

coder.load данные о загрузках во время генерации кода, также называемое временем компиляции. Если вы изменяете содержимое filename после того, как вы сгенерируете код, изменение не отражается в поведении сгенерированного кода.

S = coder.load(filename,var1,...,varN) загрузки только заданные переменные из MAT-файла filename.

S = coder.load(filename,'-regexp',expr1,...,exprN) загрузки только переменные, которые совпадают с заданными регулярными выражениями.

S = coder.load(filename,'-ascii') treats filename как ASCII-файл, независимо от расширения файла.

S = coder.load(filename,'-mat') treats filename как MAT-файл, независимо от расширения файла.

S = coder.load(filename,'-mat',var1,...,varN) обработки filename как MAT-файл и загрузки только заданные переменные из файла.

S = coder.load(filename,'-mat','-regexp', expr1,...,exprN) обработки filename как MAT-файл и загрузки только переменные, которые совпадают с заданными регулярными выражениями.

Примеры

свернуть все

Сгенерируйте код для функционального edgeDetect1 который, учитывая нормированное изображение, возвращает изображение, где ребра обнаруживаются относительно порогового значения. edgeDetect1 использование coder.load загружать ядро обнаружения ребра из MAT-файла во время компиляции.

Сохраните ядро обнаружения ребра Sobel в MAT-файле.

k = [1 2 1; 0 0 0; -1 -2 -1];

save sobel.mat k

Запишите функциональный edgeDetect1.

function edgeImage = edgeDetect1(originalImage, threshold) %#codegen
assert(all(size(originalImage) <= [1024 1024]));
assert(isa(originalImage, 'double'));
assert(isa(threshold, 'double'));

S = coder.load('sobel.mat','k');
H = conv2(double(originalImage),S.k, 'same');
V = conv2(double(originalImage),S.k','same');
E = sqrt(H.*H + V.*V);
edgeImage = uint8((E > threshold) * 255);

Создайте объект настройки генерации кода для статической библиотеки.

cfg = coder.config('lib');

Сгенерируйте статическую библиотеку for edgeDetect1.

codegen -report -config cfg edgeDetect1

codegen генерирует код С в codegen\lib\edgeDetect1 папка.

Сгенерируйте код для функционального edgeDetect2 который, учитывая нормированное изображение, возвращает изображение, где ребра обнаруживаются относительно порогового значения. edgeDetect2 использование coder.load загружать ядро обнаружения ребра из ASCII-файла во время компиляции.

Сохраните ядро обнаружения ребра Sobel в ASCII-файле.

k = [1 2 1; 0 0 0; -1 -2 -1];
save sobel.dat k -ascii

Запишите функциональный edgeDetect2.

function edgeImage = edgeDetect2(originalImage, threshold) %#codegen
assert(all(size(originalImage) <= [1024 1024]));
assert(isa(originalImage, 'double'));
assert(isa(threshold, 'double'));

k = coder.load('sobel.dat');
H = conv2(double(originalImage),k, 'same');
V = conv2(double(originalImage),k','same');
E = sqrt(H.*H + V.*V);
edgeImage = uint8((E > threshold) * 255);

Создайте объект настройки генерации кода для статической библиотеки.

cfg = coder.config('lib');

Сгенерируйте статическую библиотеку for edgeDetect2.

codegen -report -config cfg edgeDetect2

codegen генерирует код С в codegen\lib\edgeDetect2 папка.

Входные параметры

свернуть все

Имя файла. filename должно быть постоянное время компиляции.

filename может включать расширение файла и весь или частичный путь. Если filename не имеет никакого расширения, load ищет файл с именем filename.mat. Если filename имеет расширение кроме .matзагрузка обрабатывает файл как данные о ASCII.

ASCII-файлы должны содержать прямоугольную таблицу чисел с равным количеством элементов в каждой строке. Разделитель файла (символ между элементами в каждой строке) может быть пробелом, запятой, точкой с запятой или символом табуляции. Файл может содержать MATLAB® комментарии (линии, которые начинаются со знака процента, %).

Пример: 'myFile.mat'

Имена переменных в виде одного или нескольких векторов символов или строковых скаляров. Каждое имя переменной должно быть постоянным временем компиляции. Используйте * подстановочный знак, чтобы совпадать с шаблонами.

Пример: coder.load('myFile.mat','A*') загрузки все переменные в файле, имена которого запускаются с A.

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

Пример: coder.load('myFile.mat', '-regexp', '^A') загрузки только переменные, имена которых начинаются с A.

Выходные аргументы

свернуть все

Если filename MAT-файл, S массив структур.

Если filename ASCII-файл, S массив m на n типа double. m является количеством линий в файле, и n является количеством значений на линии.

Ограничения

  • Аргументы к coder.load должны быть константы времени компиляции.

  • Выход S должно быть имя структуры или массива без любого индексирования. Например, S(i) = coder.load('myFile.mat') не позволен.

  • Вы не можете использовать save сохранять данные о рабочей области к файлу в функции, предназначенной для генерации кода. Генератор кода не поддерживает save функция. Кроме того, вы не можете использовать coder.extrinsic с save. До генерации кода можно использовать save сохранять данные о рабочей области к файлу.

Советы

  • coder.load данные о загрузках во время компиляции, не во время выполнения. Если вы генерируете код MEX или код для Simulink® симуляция, можно использовать функцию MATLAB load загружать значения во время выполнения.

  • Если MAT-файл содержит неподдерживаемые построения, используйте coder.load(filename,var1,...,varN) загружать только поддерживаемые построения.

  • Если вы генерируете код в проекте MATLAB Coder™, методы генератора кода инкрементная генерация кода для coder.load функция. Когда MAT-файл или ASCII-файл используются coder.load изменения, программное обеспечение восстанавливает код.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Смотрите также

| |

Введенный в R2013a