Matlab 为什么三角洲的计算不起作用?
请在此处查看我的脚本:Matlab 为什么三角洲的计算不起作用?,matlab,sum,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
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
你在el上的循环不正确
替换:
for el = T(:, icol);
用这两条线:
for r = 1:numel(T(:, icol))
el = T(r, icol);
使用
我明白了
目前的结果是什么?您希望得到什么结果?在我的结果文件中,我只导入了数据。我需要得到与此规则相关的连续值之和,如果连续有五个或更多的0,则停止计算delta。如果少于五个0,则继续。能否给出一个或两个输入数组T的示例,以及脚本运行后结果数组将保持什么?例如,如果T=[1,3,4,2,0,0,0,0,3,0,2,0,0,0,0,0,5,9,10],结果应该是什么?请更新问题,不要添加代码作为注释。Thomas,以您的示例为例,结果是15,24。
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