为什么计算增量不起作用?

时间:2015-09-03 08:40:44

标签: matlab sum

请在此处查看我的脚本:

T = importdata('data_jana.xls');

result = cell(1, size(T,2));
for icol = 1:size(T,2);
    nzeros = 0;
    delta = 0;
    deltas = [];
    for el = T(:, icol);
        if el==0
            nzeros = nzeros + 1;
            if nzeros==5
                deltas = [deltas, delta];
                delta = 0;
            end
        else
            delta = delta + el;
            nzeros = 0;

        end
    end
    if nzeros<5
        deltas = [deltas, delta];
        delta = 0;
    end
    disp(deltas);
    result{icol} = deltas;
end

我不明白为什么不使用这个脚本计算增量...有人能帮助我吗?感谢。

我想要的例子:

col1= [0.2 , 0.2 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0.2 , 0.2]
result_col1= [1.0, 0.6, 1.0].

1 个答案:

答案 0 :(得分:0)

你的el循环不正确。

替换:

for el = T(:, icol);

这两行:

for r = 1:numel(T(:, icol))
    el = T(r, icol);

使用

T = [0.2 , 0.2 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0.2 , 0.2 , 0.2 , 0 , 0 , 0.2 , 0.2].';

我得到了

>> result
result =
{
  [1,1] =

     1.00000   0.60000   1.00000

}
>> result{1}
ans =

   1.00000   0.60000   1.00000