Печать элементов массива по порядковому номеру в 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]);
}