java代码生成1万条6个特征和一个结果的数据,并且数据浮动在正负0.05之间,将数据写入xlsx
时间: 2024-03-26 11:40:15 浏览: 16
好的,我可以为您提供Java代码来生成1万条6个特征和一个结果的数据,并且数据浮动在正负0.05之间,并将数据写入XLSX文件中。以下是代码示例:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.util.Random;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class GenerateData {
private static final int ROWS = 10000; // 数据行数
private static final int FEATURES = 6; // 特征数
private static final String[] FEATURE_NAMES = {"feature1", "feature2", "feature3", "feature4", "feature5", "feature6"}; // 特征名称
private static final String RESULT_NAME = "result"; // 结果名称
private static final double FLUCTUATION = 0.05; // 浮动范围
public static void main(String[] args) {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("data");
// 创建表头
Row headerRow = sheet.createRow(0);
for (int i = 0; i < FEATURES; i++) {
Cell cell = headerRow.createCell(i);
cell.setCellValue(FEATURE_NAMES[i]);
}
Cell resultCell = headerRow.createCell(FEATURES);
resultCell.setCellValue(RESULT_NAME);
// 生成数据
Random random = new Random();
for (int i = 1; i <= ROWS; i++) {
Row row = sheet.createRow(i);
double[] features = new double[FEATURES];
for (int j = 0; j < FEATURES; j++) {
double value = random.nextDouble() * FLUCTUATION * 2 - FLUCTUATION; // 生成浮动值
features[j] = new BigDecimal(value).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); // 保留两位小数
Cell cell = row.createCell(j);
cell.setCellValue(features[j]);
}
double result = random.nextDouble() * FLUCTUATION * 2 - FLUCTUATION;
Cell resultCellData = row.createCell(FEATURES);
resultCellData.setCellValue(new BigDecimal(result).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); // 保留两位小数
}
// 写入XLSX文件
try {
FileOutputStream outputStream = new FileOutputStream(new File("data.xlsx"));
workbook.write(outputStream);
workbook.close();
System.out.println("数据已生成并写入文件!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在运行该代码后,您将在当前目录下找到名为" data.xlsx "的文件,其中包含1万行6个特征和一个结果的数据,数据浮动在正负0.05之间。