Получить имя файла без расширения в MATLAB

Я хочу получить имя файла изображения без расширения в MATLAB. Я попытался использовать функцию (fileparts) как:

[pathstr, name, ext, versn] = fileparts(filename); 

в этой функции (имя файла) должно быть с полным путем, чтобы получить имя файла без расширения в переменной (имя).

когда у меня есть только имя файла, например ('D10_11.jpg'), я получаю следующую ошибку:

"Input must be a row vector of characters"

пожалуйста, если их еще одна функция для решения этой проблемы

3 ответов


Это отлично работает для меня:

>> filename = 'D10_11.jpg';
>> [pathstr,name,ext,versn] = fileparts(filename)

pathstr =

     ''

name =

D10_11

ext =

.jpg

versn =

     ''

вы должны проверить, чтобы убедиться filename на самом деле это то, что вы думаете. Ошибка предполагает, что это не просто вектор строк символов, таких как 'D10_11.jpg'.


из Вашего сообщения об ошибке я предполагаю, что вход может быть массивом ячеек, а не массивом символов.

таким образом, вместо

[pathstr,name,ext] = fileparts(filename)

нужно писать

[pathstr,name,ext] = fileparts(filename{1})

извините за супер поздний ответ :(, но я столкнулся с той же проблемой. Когда я искал ответ, я получил тот же вопрос, заданный кем-то другим. Нет проблем с запросом, который вы написали, только проблема, которую я вижу здесь, заключается в том, что вам не хватает формата местоположения файла.

filename = 'C:\Users\Public\myfile.csv';

[pathstr,name,ext] = fileparts(filename);

выход

pathstr =
C:\Users\Public
name =
myfile
ext =
.csv