2010-12-03 20 views
9

Quiero obtener el nombre del archivo de imagen sin la extensión en MATLAB. He tratado de utilizar la función (fileparts) como:Obtener el nombre del archivo sin extensión en matlab

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

en esta función del (nombre del archivo) debe ser con la trayectoria completa con el fin de obtener el nombre de archivo sin extensión en el la variable (nombre).

cuando tengo sólo el nombre de archivo como ('D10_11.jpg'), me sale el siguiente error:

"Input must be a row vector of characters" 

Por favor, si su es otra función de resolver este problema

+0

su enfoque es falsa. La verdadera pregunta es por qué está obteniendo ese error, por qué la variable filename es una matriz de celdas. Si no entiendes esto mañana, tendrás otro problema muy similar. El problema en sí es trivial si usted entiende qué matrices de celdas son. – Mikhail

+0

@all: ¿por qué estás votando tales preguntas (ver mi comentario anterior) ??? – Mikhail

+3

@Mikhail: Aparentemente, el SP no tenía conocimiento de * celdas *, mientras enfrentaba un problema con la función * fileparts *. El problema no fue trivial para él. Dale la oportunidad de mejorar su comprensión de MATLAB. – zellus

Respuesta

2

Estos trabajos bien para mí:

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

pathstr = 

    '' 

name = 

D10_11 

ext = 

.jpg 

versn = 

    '' 

usted debe comprobar para asegurarse de filename es en realidad lo que usted piensa que es. El error sugiere que no es solo un vector de fila de caracteres como 'D10_11.jpg'.

+0

Muchas gracias – zenab

+0

Tenga en cuenta que puede reconstruir el archivo de las partes usando 'fullfile (pathstr, [name ext])' –

14

De su mensaje de error, supongo que la entrada podría ser una matriz de células, en lugar de una matriz de caracteres.

Por lo tanto, en lugar de

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

que tendría que escribir

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

muchas gracias, aplico esta función y el problema resuelto – zenab

+5

@zenap: Me alegro funcionó. Considere la posibilidad de aceptar las respuestas que le parecieron útiles: hace felices a los que responden y los motiva más para responder preguntas futuras. – Jonas

-1

Lo siento por la respuesta super tarde :(, pero yo estaba enfrentando el mismo problema. Cuando yo estaba buscando para la respuesta recibí la misma pregunta hecha por otra persona. No hay problema con la consulta que ha escrito, el único problema que veo aquí es que le falta el formato de la ubicación del nombre de archivo.

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

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

salida es

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