Ошибка при использовании eval в функции в MATLAB - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть следующая функция MATLAB:

function getDBLfileL1(pathInput,Name_file,folderName)
   DBL_files=dir([pathInput,'/*.DBL']); %get DBL files 
   fprintf('Reading DBL files ... ')
   for i = 1:length(DBL_files) %loop through all DBL files
       [HDR, CS]=Cryo_L1b_read([pathInput,'/',DBL_files(i).name]); %read data with ESA's Cryo_L1_read function
       Coord{i}.LAT_20Hz=CS.GEO.LAT; %store values to struct
       Coord{i}.LON_20Hz=CS.GEO.LON; 
       Coord{i}.BoundingBox_StartLATLON_StopLATLON=[HDR.START_LAT*10^-6,HDR.START_LONG*10^-6,HDR.STOP_LAT*10^-6,HDR.STOP_LONG*10^-6];
       Coord{i}.FileName=[pathInput,'/',DBL_files(i).name];
   end
   eval([Name_file '= Coord;']);
   save(['output/',folderName,'/',Name_file,'.mat'],Name_file,'-v7.3')
   fprintf('done\n')
end

И она вызывается следующим образом:

getDBLfileL1(pathInput,[folderNames{i},'_',folderNames1{j}],folderNames{i}); %read Data from DBL file

Значение Name_file равно '2011_01', и я получаюследующая ошибка:

eval([Name_file])
Error: Invalid text character. Check for unsupported symbol, invisible character, or pasting of non-ASCII characters.

Кто-нибудь знает, почему возникает эта ошибка или как я могу изменить файл, что я могу заменить функцию eval()?

Заранее большое спасибо!

1 Ответ

0 голосов
/ 17 сентября 2018

Если я правильно понял, вы пытаетесь оценить '2011_01 = Coord;' Это означает, что вы назначаете Coord в переменную с именем 2011_01, и имена переменных не могут начинаться с цифр

...