我有一大堆由dataTS1给出的矩阵,它是一个1069x25828矩阵。我使用工具箱中的fints命令将其存储为时间序列/财务时间序列。
我不确定如何实现一个循环来处理这个问题,但我需要类似if语句的东西,但显然,它并没有让我在Matlab中结合 fints 的不等式。我有以下代码:
DataperSimple1 = [1; 2; 3; 0; -1; -3; 5; 3];
for n = 1:size(DataperSimple1,1)
if DataperSimple1(n,1) ~= 0
if DataperSimple1(n,1) < 0
DataperSimple1(n+1,1) = -1*DataperSimple1(n+1,1);
else
DataperSimple1(n+1,1) = 1*DataperSimple1(n+1,1);
end
else
DataperSimple1(n,1) = 0;
end
end
我对如何表达最后一个条件有点不确定。如果我写,DataperSimple1(n+1,1) = 0
然后整个矩阵变为零。实际上我只希望下一个时期为0并重新开始。这适用于Matlab中leadts
的fints,但它不允许我使用不等号。
本质上我希望Matlab阅读行 n 处的值的符号,如果它不等于0,则转到条件,如果它小于0 ,然后乘以(-1)为(n + 1)行。如果是> 0,然后按原样保留(n + 1)行。
最后,如果 n = 0 ,则只将0应用于 n + 1 行,但现在要将相同的结果应用于 n +2 行,因为它将递归地生成0&#39;的矩阵。
任何建议表示赞赏。感谢