我有一个函数,它给了我两个输出,我需要在for循环中使用它来创建不同的变量,我想在以后的循环中使用它们。所以我需要在创建它们的for循环期间更改它们的名称。 像这样的东西:
for l=1:L
[A(l),B(l)] = function(l);
end
我怎么能这样做,所以我可以有A1,A2,...或B1,B2,.... 感谢
答案 0 :(得分:0)
如果您不希望use cell arrays,可以将structure与动态字段名称结合使用:
for l = 1:L
afn = sprintf('A%d', l ); % field name for first output
bfn = sprintf('B%d', l ); % field name for second output
[s.(afn) a.(bfn)] = func( l );
end
fieldnames( s ); % see all created variable names
答案 1 :(得分:-1)
以下是您可以根据需要进行修改的示例。
function main // because we need to call `func`
L = 5; // max num of iterations
for l = 1:L
// replace `func` with the name of your function
eval(['[A' num2str(l) ', B' num2str(l) '] = func(' num2str(l) ')'])
end
end
// your function goes here
function [s, c] = func(x)
s = x*x;
c = s*x;
end