coder.load

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

Синтаксис

S = coder.load(filename)
S = coder.load(filename,var1,...,varN)
S = coder.load(filename,'-regexp',expr1,...,exprN)
S = coder.load(filename,'-ascii')
S = coder.load(filename,'-mat')
S = coder.load(filename,'-mat',var1,...,varN)
S = coder.load(filename,'-mat','-regexp', expr1,...,exprN)

Описание

пример

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

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

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

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, load обрабатывает файл как данные о 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, программное обеспечение восстанавливает код.

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

| |

Введенный в R2013a