gpt4 book ai didi

java - 调用 2D 数组函数 '' 无法将 Double[][] 转换为 Double”错误

转载 作者:行者123 更新时间:2023-12-01 22:06:42 26 4
gpt4 key购买 nike

希望大家一切都好。

调用我创建的方法时出现此错误。我创建该方法的原因是返回 2 个 double 值,因此我使用了二维数组。这是我的相关代码:

Double[][] type2FS;
type2FS = new Double[rule.getRules().get(x).getAttributes().size()][rule.getRules().get(x).getAttributes().size()];
int pos=0;

二维数组是决策树规则中属性数量的大小,规则存储在ArrayList中。

type2FS[pos][pos]=calRight(grade.getDM(),grade.getDNU(),grade.getDNL(),Double.parseDouble(store.getData()[i][z]));
pos++;
break;

我在“=”符号后面的部分收到错误,并显示消息“类型不匹配:无法从 Double[][] 转换为 Double”。传递了 4 个 double 变量。

private Double[][] calRight(double dm, double dnu, double dnl, double value) 
{
double upperMg= (value-dnl) / (dnu-dnl);
double lowerMg= 1 - upperMg;

if(upperMg>1.0)
{
upperMg=1.0;
}
else if (upperMg<0.0)
{
upperMg=0.0;
}

if(lowerMg>1.0)
{
lowerMg=1.0;
}
else if(lowerMg<0.0)
{
lowerMg=0.0;
}
Double[][] temp = {{upperMg},{lowerMg}};
return temp;
}

这是计算我希望存储在 type2FS 2D 数组中的 2 个 double 值的方法。

从函数返回的 2 个 double 值是集合的一部分。因此,一组看起来像 (4.5,5.5),现在一个决策树规则可以根据规则拥有多个集合。所以我认为存储它的最佳方法是存储在二维数组中。

我不明白我哪里出了问题。任何帮助将不胜感激。

谢谢

最佳答案

type2FS[pos][pos] = ...

正在尝试将值分配给数组的单个“单元格”,因此它应该是 double 值。但你传递的是一个数组。

所以,改变

type2FS[pos][pos]=calRight(grade.getDM(),grade.getDNU(),grade.getDNL(),Double.parseDouble(store.getData()[i][z]));

type2FS=calRight(grade.getDM(),grade.getDNU(),grade.getDNL(),Double.parseDouble(store.getData()[i][z]));

无论如何,“[...] 返回 2 个 double 值,所以我使用了二维数组”没有意义,您也可以使用一维数组:

private Double[] calRight(double dm, double dnu, double dnl, double value) {
//other code
Double[] temp = {upperMg,lowerMg};
return temp;
}

尽管这不是最好的解决方案。

关于java - 调用 2D 数组函数 '' 无法将 Double[][] 转换为 Double”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32614796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com