Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将不断增加的.csv文件的最新条目相加?_Matlab_Function_Loops_Csv_Timer - Fatal编程技术网

Matlab 将不断增加的.csv文件的最新条目相加?

Matlab 将不断增加的.csv文件的最新条目相加?,matlab,function,loops,csv,timer,Matlab,Function,Loops,Csv,Timer,如何对.csv文件第二列中的100个最新值求和 .csv文件每分钟更新一行,其中包含一个新值。i、 e行维度每分钟都在不断增加。假设我可以累积200个值,即200分钟后的200行数据(来自外部进程),但我只想将最近添加的100个值相加(即从文件的最后一行向后增加99行) 我有3组值,每列1个值Col2Value是.csv文件第2列中的值。我附加到的文件名为'200mins.csv' dlmwrite('200 mins.csv', [Col1Value, Col2Value,Col3Value]

如何对.csv文件第二列中的100个最新值求和

.csv文件每分钟更新一行,其中包含一个新值。i、 e行维度每分钟都在不断增加。假设我可以累积200个值,即200分钟后的200行数据(来自外部进程),但我只想将最近添加的100个值相加(即从文件的最后一行向后增加99行)

我有3组值,每列1个值
Col2Value
是.csv文件第2列中的值。我附加到的文件名为
'200mins.csv'

dlmwrite('200 mins.csv', [Col1Value, Col2Value,Col3Value], '-append');
以下是运行8分钟后的csv文件片段,即第2列中的8个值:


我知道MATLAB必须先读取整个文件,但这很好。我可以解决这个问题,我的应用程序不是资源关键型的。

当你在Matlab中有一个数组时,你可以用

last100sum = sum(A(end-99:end));
因此,如果读取.csv文件得到一个2D数组(我称之为
wholeFile
),并且需要第2列中最后100个元素的总和,可以这样做:

last100sum2 = sum(wholeFile(end-99:end, 2));
如果用于读取文件的例程返回一个单元格数组,则需要首先将单元格数组转换为常规数组-如果它仅包含值(例如,与字符串相反),则可能使用
cell2mat

最后—如果要读取“最多”100个值,但可能没有100行,请执行以下操作:

sz = size(wholeFile);
firstRow = max(sz(1) - 99, 1); % will return 1 if fewer than 100 rows are found
atMost100sum = sum(wholeFile(firstRow:end, 2));
任何问题-请提问