有沒有辦法將函數varargin
中的輸入參數傳遞給sprintf
命令?將varargin輸入傳入sprintf
問題是衝刺不喜歡細胞輸入。我已經使用varargin{:}
和一系列mat2str(cell2mat()
理想我想有這樣一個循環
for k = varargin
filename = sprintf('%s.mat',i)
more code......
end
感謝試過!
有沒有辦法將函數varargin
中的輸入參數傳遞給sprintf
命令?將varargin輸入傳入sprintf
問題是衝刺不喜歡細胞輸入。我已經使用varargin{:}
和一系列mat2str(cell2mat()
理想我想有這樣一個循環
for k = varargin
filename = sprintf('%s.mat',i)
more code......
end
感謝試過!
說實話,你快到了。試試這個:
for k = 1:length(varargin)
filename = sprintf('%s.mat', varargin{k})
more code......
end
這假定所有的輸入都是字符串。
另一個相關且相當有用的函數是inputname
,如果您想要返回作爲參數傳入的變量的名稱,則可以使用它。
for k = 1:length(varargin)
filename = sprintf('%s.mat', inputname(k))
more code......
end
有一點要注意:inputname
如果輸入未命名,則返回空字符串。
爲了幫助人們通過谷歌搜索爲標題這裏登陸:
你可以通過varargin
到sprintf
這樣:
sprintf(format, varargin{:})
Matlab的將電池陣列轉換爲逗號分隔值,如
sprintf(format, varargin{1}, varargin{2}, ...)
是否要打印輸入的名稱或它們包含的內容?如果是後者,你是否希望它處理拋出的任何東西,或者我們假設這個特定函數需要什麼類型的輸入有一些限制? – nkjt
輸入將是字符串,我只是想要一種方法將這些輸入傳遞到它們自己的變量名稱中。另外我注意到我在我的例子中將迭代器從k切換到了i,它們應該是相同的。 – user2654568