кодер. загрузка

Загрузите константы времени компиляции из 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.

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

Пример: 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

Была ли эта тема полезной?