有没有办法将函数中的输入参数传递给varargin
命令sprintf
?
问题是 sprint 不喜欢单元格输入。我试过使用varargin{:}
和系列mat2str(cell2mat( )
理想情况下,我想循环使用
for k = varargin
filename = sprintf('%s.mat',i)
more code......
end
谢谢!
有没有办法将函数中的输入参数传递给varargin
命令sprintf
?
问题是 sprint 不喜欢单元格输入。我试过使用varargin{:}
和系列mat2str(cell2mat( )
理想情况下,我想循环使用
for k = varargin
filename = sprintf('%s.mat',i)
more code......
end
谢谢!
为了帮助人们通过谷歌搜索标题来登陆这里:
你可以通过varargin
这种sprintf
方式:
sprintf(format, varargin{:})
Matlab 将单元格数组转换为逗号分隔的值,例如
sprintf(format, varargin{1}, varargin{2}, ...)
老实说,你快到了。尝试这个:
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
如果输入未命名,则返回空字符串。