2015-12-24 68 views
0

我有以下imwrite聲明:imwrite - 文件名必須提供

imwrite(img, strcat(thisdir,'_',num2str(j),'_LABEL_',categoryClassifier.Labels(labelIdx),'.jpg')); 

其中categoryClassifier.Labels(labelIdx)返回string,並且thisdir也是string返回目錄名。但是,我得到以下錯誤:

Error using imwrite>parse_inputs (line 510) 
A filename must be supplied. 

Error in imwrite (line 418) 
    [data, map, filename, format, paramPairs] = parse_inputs(varargin{:}); 

是不是部分來自strcat考慮的文件名?

謝謝。

+0

你能展示一個'strcat()'產生的例子嗎? – KQS

+0

@ user1877862。當我替換了預期會產生字符串的變量時,例如:strcat(thisdir,'_',num2str(1),'_ LABEL _','image','。jpg')---> mri_1_LABEL_image.jpg – Simplicity

回答

1

這是有點在黑暗中拍攝,但我懷疑你想要categoryClassifier.Labels{labelIdx}而不是categoryClassifier.Labels(labelIdx)(區別在於花括號)。

假設categoryClassifier.Labels是一個字符串的單元格數組,這個花括號給出了該單元格的內容(這正是你想要的),而括號給出了一個1x1單元格數組(這看起來很像一個字符串MATLAB的命令窗口)。還請注意,strcat非常樂意處理字符串的單元數組,因此它不會發出抱怨,但imwrite因爲它的參數都不是字符串而嚇壞了。

相關問題