使用 ImageJ 宏进行一些统计后如何从结果中写入 csv 文件?

问题描述

使用 ImgaeJ 宏处理一些图像后,我有一个“结果”选项卡,其中包含 2 列 A 和 B。假设我有 50 行数据。

现在我想从上面 B 列的所有其他 49 行中减去最后一行的值。

在此之后,我想将所有值写入“.csv”文件(A、B 和 C 列各有 49 个值)。

下面是部分代码。我认为唯一的问题是从脚本可以写入 csv 文件的数组中获取值。

Array.getStatistics 命令仅导出给定列的均值、标准值。我有兴趣获取所有 49 个值。

directory = getDirectory("Choose a Directory");
resultFilename = directory + Dialog.getString() + ".csv";

A = newArray(nResults() - 1);
B = newArray(nResults() - 1);

D = getResult("B",nResults() - 1);
    
for (i = 0; i < nResults() - 2; i++) {
    A[i] = getResult("A",i);
    B[i] = getResult("B",i);
    C[i] = A[i] - D;
}

知道获取 A[i]、B[i] 和 C[i] 的值的命令是什么吗?

期待在这里得到帮助。

谢谢。

解决方法

一种解决方案是在计算时写入文件。我已经修改了您的示例(未经测试)以展示其工作原理。

// DashBoard/styles.js
export default makeStyles({
  root: {
    display: "grid",gridTemplateRows: "11fr 1fr",margin: "0 .8em",},chatContainer: {
    marginBottom: ".8em",});

请注意,您根本不需要创建数组,只需写入文件即可(同样未经测试):

directory = getDirectory("Choose a Directory");
resultFilename = directory + Dialog.getString() + ".csv";
f = File.open(resultFilename);

A = newArray(nResults() - 1);
B = newArray(nResults() - 1);
// no C array is made so:
C = newArray(nResults() - 1);
D = getResult("B",nResults() - 1);
    
for (i = 0; i < nResults() - 2; i++) {
    A[i] = getResult("A",i);
    B[i] = getResult("B",i);
    C[i] = A[i] - D;
    // should the line above should be C[i] = B[i] - D;
    print(f,d2s(A[i],6) + "  \t" + d2s(B[i],6) + " \t" + d2s(C[i],6));
}
File.close(f);

我使用了“\t”(制表符)作为分隔符而不是逗号。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...