我正在尝试保存以下函数的输出(它为输入1的每次迭代提供两个输出,其余的保持不变)。
该函数为银行间市场创建压力测试,测试样本中每个银行违约的影响(输出为capital_losses和defaulted_banks),即input1必须从1开始:(长度(input2),4这里提供的代码,最终代码中的300+,所以我需要一个循环
这里是银行3违约的一次迭代样本
input1 = 3; % default_bank
input2=[100000;200000;300000;400000]; % capital levels in the function
input3 = ...
[70000, 15000, 24000, 52453;
23420, 24252, 10000, 35354;
98763, 45666, 96555, 05000;
09800, 54444, 04336, 67520]; % interbank loans in the function
input4 = 1;
input5 = .35;
input6 = 1;
% function calls on above inputs
[capital_losses defaulted_banks] = interbank_model( ...
input1, input2, input3, input4, input5, input6)
这是一次使用default_bank = 3的迭代的标准输出,但是我需要这个300+,所以循环会很有用......
capital_losses3 =
1.0e+05 *
0.5857
0.2598
3.0000
0.0609
defaulted_banks3 =
0
0
1
0
我想得到每个默认银行的输出,即由for循环显示default_bank = 1:4,如下所示: capital_losses_all =
1.0e + 05 *
1.0000 0.2320 0.5857 0.5857
0.2867 2.0000 0.2598 0.2598
1.0716 0.4917 3.0000 3.0000
0.2816 0.6682 0.0609 0.0609
defaulted_banks_all =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
这是手动生成的,但我如何将值存储在矩阵中? 谢谢你的帮助。 (之前我有一个类似的问题,但编辑和评论变得非常混乱,所以这里是我改进的呼救...) 克里斯
答案 0 :(得分:0)
非常一般的答案(适应您的需要):
valuesThatChange = [1 3 5 4 2]; % different for each iteration in the loop
% values that don't change:
a=1;
b=2;
c=3;
N = numel(valuesThatChange);
% create storage for results:
results = zeros(4, N);
% loop N times
for ii=1:N
results(:,ii) = functionCall(valuesThatChange(ii), a, b, c); % returns a 4 element result
end
现在,您可以获得4xN矩阵中每个循环的函数结果。