У меня проблема с MATLAB, которую я не могу исправить. Это выдает ошибку, утверждая,
??? Error using ==> fprintf
Function is not defined for 'cell' inputs.
Error in ==> writedata at 93
fprintf(fout, 'INSERT INTO postgres VALUES( %s, %s, %s.\n )', domain, start, stop);
@ Флориан Брукер написал мне этот код, и я изменил код для запуска 2 регулярных выражений вместо одного, поскольку одно регулярное выражение, кажется, копирует обе строки в документе в один массив ячеек, когда он должен находиться в две отдельные ячейки.
domain = '';
start = '';
stop = '';
fin = fopen('CathDomainDescriptionFile.txt', 'r');
fout = fopen('output_cath.txt', 'w');
% TODO: Add error check!
while true
line = fgetl(fin); % Get the next line from the file
if ~ischar(line)
% End of file
break;
end
[key, value] = strtok(line); % Split line at the first space
switch key
case 'DOMAIN'
% Store domain
domain = value;
case 'SRANGE'
% two regular expressions since the doing it all in one throws an error
% Index exceeds matrix dimensions.
m = regexp(value, 'START=(\d+)', 'tokens');
m2 = regexp(value, 'STOP=(\d+)', 'tokens');
start = m;
stop = m2;
% Print result
fprintf(fout, 'INSERT INTO postgres VALUES( %s, %s, %s.\n )', domain, start, stop);
end
end
fclose(fin);
fclose(fout);
Похоже, что из-за ошибки выводятся результаты для DOMAIN, но не для значений START и STOP. Нужно просто распечатать номер домена, значения START и STOP внутри оператора fprintf
.
Я новичок в MATLAB.