1

有没有办法将函数中的输入参数传递给varargin命令sprintf

问题是 sprint 不喜欢单元格输入。我试过使用varargin{:}和系列mat2str(cell2mat( )

理想情况下,我想循环使用

for k = varargin 
    filename = sprintf('%s.mat',i)
    more code......
end 

谢谢!

4

2 回答 2

2

为了帮助人们通过谷歌搜索标题来登陆这里:

你可以通过varargin这种sprintf方式:

sprintf(format, varargin{:})

Matlab 将单元格数组转换为逗号分隔的值,例如

sprintf(format, varargin{1}, varargin{2}, ...)
于 2014-08-22T13:31:02.307 回答
0

老实说,你快到了。尝试这个:

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如果输入未命名,则返回空字符串。

于 2013-10-08T16:58:31.500 回答