有没有办法在循环中将varargin
中的输入传递给fprintf
?
例如,如果你有类似的东西:
function = func_name(var1,varargin)
for i = varargin
fprintf('The first name is %s , another is %s',var1,varargin)
end
如果输入为name1
name2
和name3
,我希望输出循环:
The first name is name1, another is name2
The first name is name1, another is name3
fprintf
无法接收单元格输入,将varargin
更改为varargin{:}
(使其成为单独的列表)并不是我想要的,因为它没有将varargin
输入到单独的循环中。
我也不能使用inputname()
,因为如果输入是表达式而不是单个变量,则Matlab在调用输入名称时返回空字符串''
。有没有办法继续使用inputname()
并在循环中添加一个计数器,或者为varargin
输入编制索引并循环它们?
答案 0 :(得分:0)
当您使用for i = varargin
时,i
会对varargin
的元素进行迭代,因此您只需将varargin
语句中的fprintf
更改为i
即可}
function = func_name(var1,varargin)
for i = varargin
fprintf('The first name is %s , another is %s',var1,i)
end
顺便说一下,it is recommended避免在MATLAB中使用i
和j
作为变量。