나는 matlab 코더와 함께 C++ 코드로 내보내는 함수를 가지고있다. 코드에서 행렬은 매트 파일에서로드됩니다. 내가 사용하고 있었다 :어떻게 matlab 코더를 사용하여 런타임에 변수를 초기화 할 수 있습니까?
coder.load('filename.mat');
그러나 이것은 내가 런타임에 파일을 변경할 수 있도록 허용하지 않습니다.
fileId = fopen(filename_variable,'r');
file_data = fread(fileId,Inf,'double');
fclose(fileId);
이 날 런타임에 다른 파일을로드 할 수 있습니다 :
은 내가 먼저fwrite
를 사용하여 이진 파일을 저장하고 다음과 같이 읽어 해결책을 시도했다. 그러나이 함수는 5Hz에서 호출되므로이 경우 파일을 계속로드합니다. Matlab에서 한 번만 파일을로드 할 수있는 방법이 있습니까? 아니면이 문제를 해결하기위한 또 다른 접근법이 있습니까?
PS : 내가 매트랩 사용 매트랩 측으로 파일명을 통과 :
coder.typeof('s',Inf);
및 MATLAB 함수 타입 emxArray_char_T
의 변수를 통과하여 생성 :
emxArray_char_T* filename = emxCreateWrapper_char_T(filename_char_pointer, 1, size);