2015-03-15 7 views
0

У меня есть следующий фрагмент кода используется для расчета частоты сердечных сокращений от сигнала ЭКГ путем обнаружения QRS пиков:Отображение массив целых чисел не работает

public class Heart_Rate { 

public static void main(String[] args) throws IOException{ 
    // Read Text file 
    Path filePath = Paths.get("heartrate.txt"); 
    Scanner scanner = new Scanner(filePath); 
    List<Double> rawData = new ArrayList<Double>(); 

    while (scanner.hasNext()) { 
     if (scanner.hasNextDouble()) { 
      rawData.add(scanner.nextDouble()); 
     } else { 
      scanner.next(); 
     } 
    } 
    System.out.println(rawData); 

    //Find Max value for Threshold Level 
    Double maximum = Collections.max(rawData); 
    Double threshold = 0.7*maximum; 

    System.out.println("Maximum = " + maximum); 
    System.out.println("Threshold = " + threshold); 

    //Calculate Heart Rate from list "Raw Data" 
    int upflag = 0; 
    int last = 1; 
    int p = 0; 
    int t = 0; 
    int count = 0; 
    //List<Double> heartRate = new ArrayList<Double>(); 
    int heartRate2[] = new int[50]; 

    for (int i = 0; i < rawData.size(); i++) { 
     if (rawData.get(i)> threshold){ 
      if (upflag == 0){ 
       if (last > 0){ 
        t = i - last; 
        p = 100*60/t; 
        //100 is the sampling rate 
        heartRate2[count] = p; 
        count = count + 1; 
        //heartRate.add(p); 

       } 
       last = i; 
      } 
      upflag = 50; 
     } 
     else { 
      if (upflag > 0){ 
       upflag = upflag -1; 
      } 
     } 
    } 
    System.out.println("Count = " + count); 
    System.out.println("Heart Rate = " + heartRate2); 
    System.out.println("Heart Rate = " + heartRate2); 

    } 


} 

Когда я добавляю значения частоты пульса, вычисленные (р) к моему ArrayList (называемому HeartRate), я получил правильный массив значений. Однако я попытался изменить все мои значения на int и сохранить мои значения в массиве integer (так называемый heartRate2). Я получаю следующий результат: Частота сердечных сокращений = [I @ dd1e765 Мне нужны мои значения как целые числа, так как частота сердечных сокращений рассчитывается в битах в минуту. Я также попытался преобразовать двойные значения в int, но в итоге получил аналогичный результат, как указано выше.

+0

"[I @ dd1e765" * - массив целых чисел. Параметр '[' указывает «массив», «I» указывает «целое число», а «dd1e765» - это значение хэша, присвоенное массиву. –

ответ

0

Используйте Arrays.toString(arr), чтобы получить осмысленное представление String для некоторого массива arr.

+0

Спасибо! Это сработало отлично! – Code

Смежные вопросы