【问题标题】:Get the file name without Extension in matlab在matlab中获取不带扩展名的文件名
【发布时间】:2010-12-03 16:03:30
【问题描述】:

我想在 MATLAB 中获取不带扩展名的图像文件名。 我曾尝试将 (fileparts ) 函数用作:

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

在此函数中,(文件名)必须带有完整的路径,以便在变量(名称)中获取不带扩展名的文件名。

当我只有 ('D10_11.jpg') 之类的文件名时,我收到以下错误:

"Input must be a row vector of characters"

请,如果他们是解决这个问题的另一个功能

【问题讨论】:

  • 你的方法是错误的。真正的问题是为什么你会得到那个错误,为什么变量文件名是一个单元格数组。如果您明天不理解这一点,您将遇到另一个非常类似的问题。如果您了解什么是元胞数组,问题本身就很简单。
  • @all:你为什么要支持这样的问题(见我上面的评论)???
  • @Mikhail:显然 SP 不知道 cell arrays,同时面临 fileparts 函数的问题。这个问题对他来说不是小事。让他有机会加深对 MATLAB 的理解。

标签: file matlab filenames


【解决方案1】:

根据您的错误消息,我猜输入可能是元胞数组,而不是 char 数组。

因此,而不是

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

你必须写

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

【讨论】:

  • 非常感谢,我应用了这个功能,问题就解决了
  • @zenap:我很高兴它成功了。请考虑接受您认为有帮助的答案 - 这会让回答者感到高兴并更有动力回答未来的问题。
【解决方案2】:

这对我来说很好用:

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

pathstr =

     ''

name =

D10_11

ext =

.jpg

versn =

     ''

您应该检查以确保 filename 确实是您认为的那样。该错误表明它不仅仅是'D10_11.jpg'等字符的行向量。

【讨论】:

  • 请注意,您可以使用fullfile(pathstr,[name ext])从各个部分重建文件
【解决方案3】:

很抱歉回答得太晚了:(,但我也遇到了同样的问题。 当我在寻找答案时,我得到了其他人提出的相同问题。 您编写的查询没有问题,我在这里看到的唯一问题是您缺少文件名位置的格式。

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

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

输出是

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

【讨论】:

    猜你喜欢
    • 2011-06-15
    • 2011-10-02
    • 2011-05-25
    • 2015-05-20
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多