Печать элементов массива по порядковому номеру в ImageJ (Фиджи)

Я пытаюсь выяснить, как я могу получить доступ к элементу в массиве по его номеру индекса. Я написал скрипт, который сгенерирует массив с некоторым количеством переменных. В архиве списка рассылки 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 ответ

Решение

Я не уверен на 100%, правильно ли я понял ваш вопрос.

но есть ли способ найти значение в самом массиве?

Проблема в том, что вы не можете создать массив с points так как это строка Попробуй что нибудь линке:

Fpoints = split(points, ',');

Затем вы можете перебирать Fpoints с помощью цикла или использовать функцию index для получения индекса заданного значения.

for (i = 0; i < Fpoints.length; i++) {
    print(Fpoints[i]);
}
Другие вопросы по тегам