我的数组在第一行包含一个字符串
如何将数组从第2行加到第N / 1442行(如我的例子中),忽略列中存在的负号?
例如,我的名为data2
的数组的代码是:
S = sum(data2(2,15):data2(1442,15));
将第15行中第2行到第1442行的所有元素相加。 这不起作用,但它也没有任何东西可以处理其检查
的任何行的绝对值数据来自.csv:
答案 0 :(得分:2)
你应该这样做:
sum(abs(data(2:1442,15)));
abs
函数将找到数组中每个值的绝对值(即忽略负号)。 data(2:1442,15)
将按照您的意愿获取第15列的2-1442行。
编辑:显然data
是一个单元格数组,所以你可以这样做,我想:
sum(abs([data{2:1442,15}]));
答案 1 :(得分:1)
好的,所以看起来你有一个恒定的列,所以
data2(2,15) = -0.02
并进一步向下
data2(1442,15) = -0.02 %(I would assume)
所以当你形成:
data2(2,15):data2(1442,15)
这对于尝试创建一个数组而言非常重要,因为:
-0.02:-0.02
ans =
-0.0200
当然给出了:
>> sum(-0.02:-0.02)
ans =
-0.0200
你想要的更像是:
sum(data2(2:1442,15))
这样,索引:2:1442,为你形成所有行引用的向量。
忽略负值:
your answer = sum(abs(data2(2:1442,15)))
编辑:对于一个有效的单元格数组:
sum(abs(cell2mat(data2(2:1442,15))))