File 在matlab中获取不带扩展名的文件名

File 在matlab中获取不带扩展名的文件名,file,matlab,filenames,File,Matlab,Filenames,我想在MATLAB中获得没有扩展名的图像文件名。 我尝试将(fileparts)函数用作: [pathstr, name, ext, versn] = fileparts(filename); 在此函数中,(文件名)必须具有完整路径,才能在变量(名称)中获得不带扩展名的文件名 当我只有像('D10_11.jpg')这样的文件名时,我得到以下错误: "Input must be a row vector of characters" 请,如果它们是解决此问题的另一个函数这对我来说很好: &g

我想在MATLAB中获得没有扩展名的图像文件名。 我尝试将(fileparts)函数用作:

[pathstr, name, ext, versn] = fileparts(filename); 
在此函数中,(文件名)必须具有完整路径,才能在变量(名称)中获得不带扩展名的文件名

当我只有像('D10_11.jpg')这样的文件名时,我得到以下错误:

"Input must be a row vector of characters"

请,如果它们是解决此问题的另一个函数

这对我来说很好:

>> 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

非常感谢,我应用了这个函数和问题solved@zenap请考虑接受有用的答案——它使回答者感到高兴,使他们更有动力回答未来的问题。你的方法是错误的。真正的问题是为什么你会得到那个错误,为什么变量文件名是一个单元?y、 如果你明天不理解这一点,你将遇到另一个非常类似的问题。如果你理解什么是单元格数组,这个问题本身就无关紧要了。@all:你为什么要对这些问题进行投票(见我上面的评论)?@Mikhail:显然,SP在面临fileparts函数问题时没有意识到单元数组。这个问题对他来说并不微不足道。给他一个机会来提高他对MATLAB的理解。请注意,您可以使用
fullfile(pathstr,[name ext])