Java 显示整数数组不起作用
我有一段代码,用于通过检测QRS峰值从ECG信号计算心率:Java 显示整数数组不起作用,java,arrays,integer,int,double,Java,Arrays,Integer,Int,Double,我有一段代码,用于通过检测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&
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);
}
}
public class心率{
公共静态void main(字符串[]args)引发IOException{
//读取文本文件
Path filePath=Path.get(“heartrate.txt”);
扫描仪=新扫描仪(文件路径);
List rawData=new ArrayList();
while(scanner.hasNext()){
if(scanner.hasNextDouble()){
添加(scanner.nextDouble());
}否则{
scanner.next();
}
}
System.out.println(原始数据);
//查找阈值级别的最大值
双倍最大值=Collections.max(rawData);
双阈值=0.7*最大值;
System.out.println(“最大值=”+最大值);
System.out.println(“阈值=+阈值”);
//根据列表“原始数据”计算心率
int upflag=0;
int last=1;
int p=0;
int t=0;
整数计数=0;
//列表心率=新的ArrayList();
int heartRate2[]=新int[50];
对于(int i=0;i阈值){
如果(upflag==0){
如果(上次>0){
t=i-最后一次;
p=100*60/t;
//100是采样率
心率2[计数]=p;
计数=计数+1;
//心率(p);
}
last=i;
}
upflag=50;
}
否则{
如果(向上标记>0){
upflag=upflag-1;
}
}
}
System.out.println(“Count=“+Count”);
System.out.println(“心率=”+心率2);
System.out.println(“心率=”+心率2);
}
}
当我将计算的心率值(p)添加到ArrayList(称为心率)时,我收到了一个正确的值数组。
但是,我尝试将所有值更改为int,并将值保存在整数数组(称为heartRate2)中,结果如下:
心率=[I@dd1e765
我需要将我的值设置为整数,因为心率是以每分钟心跳数计算的。我还尝试将双精度值转换为int,但最终得到了与上面类似的结果。使用数组。toString(arr)
为某些数组arr
获取有意义的字符串表示形式[I@dd1e765"是一个整数数组。[
表示“数组”,“I”表示“整数”,“dd1e765”是分配给数组的哈希值。