有没有办法将函数varargin
中输入的参数传递给sprintf
命令?
问题在于sprint不喜欢细胞输入。我已尝试使用varargin{:}
和mat2str(cell2mat( )
理想情况下,我希望将其置于循环中
for k = varargin
filename = sprintf('%s.mat',i)
more code......
end
谢谢!
答案 0 :(得分:1)
通过谷歌搜索标题帮助人们登陆:
您可以通过这种方式将varargin
传递给sprintf
:
sprintf(format, varargin{:})
Matlab会将单元格数组转换为逗号分隔值,例如
sprintf(format, varargin{1}, varargin{2}, ...)
答案 1 :(得分: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
将返回一个空字符串。