Я совсем новичок в MATLAB. Я должен написать функцию, которая подсчитывает количество определенного символа в текстовом файле. Запрашиваются 2 входных аргумента: fname (вектор символа имени файла) и символ (символ, который он считает в файле).
Выходной аргумент: количество найденных символов. Если файл не найден или символ не является допустимым символом, функция возвращает -1.
Я написал функцию, которая правильно прошла два из 4 тестов. Два неправильных:
==> 1) Тест со всеми видимыми символами
Объяснение: Переменная charnum имеет неверное значение. При тестировании с '#' ваше решение вернуло -1, что неверно. (0)
==> 2) Несуществующий файл
Для номера 2) объяснение не приводится.
Это мой код:
function charnum = char_counter(fname, character)
A = fileread(fname);
char_1 = strfind(A, character);
charnum = numel(char_1);
if isfile(fname) == 0 %doesn't work...
charnum = -1;
elseif exist(fname) == 0
charnum = -1;
elseif charnum == 0
charnum = -1;
elseif ischar(character) == 0
charnum = -1;
fclose(fid);
end
Спасибо всем за ваши предложения и советы.
Я понимаю, для 1), что я, вероятно, должен добавить инструкцию, чтобы учесть все символы, но я не могу найти удовлетворительный способ, который работает. Потому что, когда я проверяю символ «#», он работает правильно на моем MATLAB:
Когда я проверяю функцию с видимым символом «#», ответ правильный.
Для 2) Я не понимаю, почему моя 4-я строка не работает правильно.
Я уже проверял различные варианты, найденные в Интернете, но пока проблема не устранена.