是否有一种简单的方法来选择让我们说第一个非零元素的数组中的每2个元素。我的数组很稀疏。例如:
val =
(1,1) 0.1667
(2,1) 0.1667
(3,1) 0.1667
(4,1) 0.1667
(5,1) 0.1667
(6,1) 0.1667
(7,1) 0.1667
(8,1) 0.1667
所以我想运行我的代码,输入2个值,接下来的两个值,依此类推。 像这样:
val =
(1,1) 0.1667
(2,1) 0.1667
(5,1) 0.1667
(6,1) 0.1667
下面是我的代码,假设我想从第一个非零元素开始选择每2个元素。
results=zeros(86400,1); % time of the day in seconds
for i=1:28,
currentFlowArray=allFileMin(i).demand_pattern1.Wm.total.flowArray;
for p=1:86400,
results(p)=results(p)+ currentFlowArray(p);
end
end
希望我很清楚! 提前谢谢!
答案 0 :(得分:0)
要从val
中获取值:
valnz = nonzeros(val);
result = valnz(sort([1:4:nnz(val) 2:4:nnz(val)]));
要删除val
中的非理想值:
ind = find(val);
val(ind(sort([3:4:numel(ind) 4:4:numel(ind)]))) = 0;