Функция не определена для входов «ячейки». - ошибка MATLAB - PullRequest
0 голосов
/ 03 января 2012

У меня проблема с 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.

1 Ответ

1 голос
/ 03 января 2012

Вам следует взглянуть на тип возвращаемого значения regexp .

При вызове fprintf вы утверждаете, что input является целым числом.Это противоречит выводу функции regexp, вызываемой выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...