Получить имя файла без расширения в Matlab - PullRequest
9 голосов
/ 03 декабря 2010

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

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

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

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

"Input must be a row vector of characters"

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

Ответы [ 3 ]

14 голосов
/ 03 декабря 2010

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

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

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

вам нужно написать

[pathstr,name,ext] = fileparts(filename{1})
2 голосов
/ 03 декабря 2010

Это прекрасно работает для меня:

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

pathstr =

     ''

name =

D10_11

ext =

.jpg

versn =

     ''

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

0 голосов
/ 17 февраля 2015

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

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

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

Вывод

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