在ImageJ(斐济)按索引号打印数组项

时间:2018-01-11 11:48:13

标签: arrays macros imagej imagej-macro fiji

我正在试图弄清楚如何通过它的索引号访问数组中的项目。我编写了一个脚本,它将生成一个包含一些变量的数组。 imageJ邮件列表存档(如下所示)上有一个旧脚本,它能够打印数组中已知值的给定索引值,但是有没有办法在数组中找到值?即如果我让用户输入应该在数组中的值的数量,我可以让宏调用数组中的值吗?

我的数组生成器:

Dialog.create("Time Point Input");
Dialog.addNumber("How many time points?", 0)
Dialog.addString("What are your time points (comma separated, no spaces)?:",0);
Dialog.show();
time = Dialog.getNumber();
points = Dialog.getString();
Fpoints = newArray(points);

读数可能是这样的:

time = 4
points = 5,10,12,27

Fpoints[0] = 5
Fpoints [1] = 10
Fpoints [2] = 12
Fpoints [3] = 27

从数组编号值示例代码调用索引:

arr = newArray(1,5,3,12); 
i = index(arr, 5); 
print("index = "+i); 

  function index(a, value) { 
      for (i=0; i<a.length; i++) 
      if (a[i]==value) return i; 
  return -1; 
 } 

谢谢!

1 个答案:

答案 0 :(得分:2)

如果我的问题得到解决,我不能100%确定。

  

但有没有办法在数组中找到值?

问题是你不能用points创建一个数组,因为它是一个字符串。 尝试一下林克:

Fpoints = split(points, ',');

然后,您可以使用循环迭代Fpoints,或使用索引函数获取给定值的索引。

for (i = 0; i < Fpoints.length; i++) {
    print(Fpoints[i]);
}