【问题标题】:Displaying an array of integers does not work显示整数数组不起作用
【发布时间】:2015-03-15 00:04:33
【问题描述】:

我有以下代码用于通过检测 QRS 峰值从 ECG 信号计算心率:

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);

    }


}

当我将计算出的心率值 (p) 添加到我的 ArrayList(称为 HeartRate)中时,我收到了正确的值数组。 但是,我尝试将我的所有值更改为 int 并将我的值保存在一个整数数组(称为 heartRate2)中,我得到以下结果: 心率 = [I@dd1e765 我需要我的值是整数,因为心率是以每分钟跳动数计算的。我还尝试将双精度值转换为 int,但最终收到与上述类似的结果。

【问题讨论】:

  • "[I@dd1e765" 是一个整数数组。 [ 表示“数组”,“I”表示“整数”,“dd1e765”是分配给数组的哈希值。

标签: java arrays integer int double


【解决方案1】:

使用Arrays.toString(arr) 为某个数组arr 获取有意义的String 表示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 2020-07-21
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    相关资源
    最近更新 更多