【发布时间】:2017-02-15 15:41:20
【问题描述】:
我的目标:根据每行中普遍存在的 5 个场景中的哪一个,按照 if 语句进行计算。最终结果应该是 1 列,包括每行计算的结果。
到目前为止我尝试了什么:
CalcOutcome = zeros(554,1);
for k=height(MomPF)
if MomPF.L_sum4t<0 & MomPF.U_sum4t>0
% make calc for every row but end result should only be 1 column
% with the calc outcomes
CalcOutcome=(-1)*MomPF.L_sum4t{k}*0.5 + MomPF.U_sum4t{k}*0.5;
elseif MomPF.L_sum4t<0 & MomPF.U_sum4t<0
CalcOutcome=(-1)*MomPF.L_sum4t{k}*1;
elseif MomPF.L_sum4t>0 & MomPF.U_sum4t>0
CalcOutcome=MomPF.U_sum4t{k}*1;
elseif MomPF.L_sum4t>0 & MomPF.U_sum4t<0
CalcOutcome=MomPF.L_sum4t{k}*0.5 + (-1)*MomPF.U_sum4t{k}*0.5;
elseif MomPF.L_sum4t==0 & MomPF.U_sum4t==0
CalcOutcome=0
end
end
【问题讨论】:
-
你有什么问题?
-
@excaza,见上文(目标部分)
-
一个问题通常以问号结尾。 (请不要添加“我如何实现该目标?”。This 可能会有所帮助。)
-
您的代码不能正常工作有什么原因吗?你只需要
CalcOutcome(k)=...吗? -
@AnderBiguri 没错,目的是获得 CalcOutcome (554x1)。到目前为止,CalcOutcome 只返回零。如果单独运行,if 语句 和 calculations 似乎都有效;问题在于将这两个链接起来并最终将计算结果存储在 CalcOutcome 变量中。
标签: matlab loops if-statement indexing financial