2010-12-03 393 views
9

我想在沒有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

回答

2

該作品的另一個功能對我罰款:

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

pathstr = 

    '' 

name = 

D10_11 

ext = 

.jpg 

versn = 

    '' 

你應該檢查,以確保filename實際上是你認爲它是。該錯誤表明它不僅僅是像'D10_11.jpg'這樣的字符的行向量。

14

從你的錯誤信息,我猜輸入可能是一個單元格數組,而不是一個字符數組。

這樣,不是

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

你必須寫

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

對不起,答案超級晚:(,但我面臨同樣的問題。 當我搜索對於答案,我得到了別人問過的同樣的問題。 你寫的查詢沒有問題,只有我在這裏看到的問題是你缺少文件名位置的格式。

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

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

輸出是

pathstr = 
C:\Users\Public 
name = 
myfile 
ext = 
.csv 
相關問題