gnuplot - 如何计算 csv 文件列中的条目数?
gnuplot - How can I count the number of entries in a csv file column?
我有一个 gnuplot 代码,其中包含一个函数拟合例程。
当必须拟合大量数据点时,此例程很慢。我的输入文件中的数据点数量是可变的,具体取决于我是 运行.
的某些模拟的参数
我希望只适合100分。到目前为止,我一直在通过手动计算输入文件中的条目数并除以 100 并将结果数用作拟合命令的 "every N" 命令来执行此操作。
更多详情:
我使用的拟合命令是:
fit f(x) "output.csv" every N using 1:4:9 via a,b
Where N = integer_round_down(output_file_length / 100.0) - 在我的 gnuplot 脚本中手动替换 N 的值之前,我在计算器上手动计算了这个值。 (好吧,所以除以 100,我在脑海中计算,而不是在计算器上。)
有什么方法可以获取任何列中的条目数,例如第 1 列、第 4 列或第 9 列...然后在我的脚本中使用变量来计算 N,而无需编辑我的脚本每次更改模拟参数时?
您可以通过 system()
调用使用评论中提供的解决方案,或使用 stats
:
选项 1:
N = floor(system("wc -l output.csv")/100.)
选项 2:
stats output.csv
N = floor(STATS_records/100.)
我有一个 gnuplot 代码,其中包含一个函数拟合例程。
当必须拟合大量数据点时,此例程很慢。我的输入文件中的数据点数量是可变的,具体取决于我是 运行.
的某些模拟的参数我希望只适合100分。到目前为止,我一直在通过手动计算输入文件中的条目数并除以 100 并将结果数用作拟合命令的 "every N" 命令来执行此操作。
更多详情:
我使用的拟合命令是:
fit f(x) "output.csv" every N using 1:4:9 via a,b
Where N = integer_round_down(output_file_length / 100.0) - 在我的 gnuplot 脚本中手动替换 N 的值之前,我在计算器上手动计算了这个值。 (好吧,所以除以 100,我在脑海中计算,而不是在计算器上。)
有什么方法可以获取任何列中的条目数,例如第 1 列、第 4 列或第 9 列...然后在我的脚本中使用变量来计算 N,而无需编辑我的脚本每次更改模拟参数时?
您可以通过 system()
调用使用评论中提供的解决方案,或使用 stats
:
选项 1:
N = floor(system("wc -l output.csv")/100.)
选项 2:
stats output.csv
N = floor(STATS_records/100.)