MATLAB / Загрузка файла встроенного кодера - PullRequest
0 голосов
/ 12 февраля 2019

Я сгенерировал код для загрузки файла mat следующим образом

data=coder.load('data.mat');
a=data.a;
b=data.b;

Поскольку одна из переменных, например «a», очень большая, она определяется как большой статический массив const в основнойфункция со всеми значениями, инициализированными там.

Можно ли заставить MATLAB Coder загружать данные из файла в C-коде вместо определения его в качестве переменной в основной функции?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Это точный код, который мы должны использовать, основываясь на ответе Райана:

load('Data.mat')
fileID = fopen('Data.bin', 'w');
fwrite(fileID, Matrix1,'uint64');
fclose(fileID);


fileID=fopen('Data.bin');
Matrix2=fread(fileID,[256,256],'uint64');
fclose(fileID);

Матрица 2 теперь такая же, как Матрица 1. Хитрость при записи и чтении заключается в использовании одинаковой точности, основанной натип данных.

0 голосов
/ 12 февраля 2019

Функция MATLAB fread поддерживается для генерации кода.Таким образом, вы можете fwrite данные в файл в MATLAB и затем fread в сгенерированном коде.Это выполнит чтение во время выполнения и позволит избежать гигантской константы в сгенерированном коде.

...