在matlab中获取没有扩展名的文件名

问题描述:

我想在没有MATLAB扩展的情况下获取图像文件名。 我曾尝试使用(fileparts)功能:在matlab中获取没有扩展名的文件名

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

在此功能的(文件名)必须与完整路径,以获取文件名不带扩展名的变量(名称)。

当我有一样(“D10_11.jpg”)的文件名,我收到以下错误:

"Input must be a row vector of characters" 

请,如果他们是为了解决这个问题

+0

你的做法是错误的。真正的问题是为什么你得到这个错误,为什么变量文件名是一个单元格数组。如果你明天不明白,你将会遇到另一个非常类似的问题。如果你明白单元阵列是什么,那么问题本身就是微不足道的。 – Mikhail 2010-12-03 22:45:08

+0

@all:你为什么要提出这样的问题(请参阅我上面的评论)? – Mikhail 2010-12-03 22:46:26

+3

@Mikhail:显然,SP不知道*单元阵列*,同时面对* fileparts *函数的问题。这个问题对他来说不是微不足道的。给他一个机会来提高他对MATLAB的理解。 – zellus 2010-12-04 02:25:15

该作品的另一个功能对我罚款:

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