Java 如何使用ArrayList的值更改矩阵的索引?
我正在java代码(Eclipse)中从matlab导入一些值。 我想用java中的列表更改矩阵的索引。我该怎么做 ''' 我想用这些值创建一个矩阵,索引等于Origin和DestJava 如何使用ArrayList的值更改矩阵的索引?,java,arrays,arraylist,indexing,Java,Arrays,Arraylist,Indexing,我正在java代码(Eclipse)中从matlab导入一些值。 我想用java中的列表更改矩阵的索引。我该怎么做 ''' 我想用这些值创建一个矩阵,索引等于Origin和Dest int D = 3; double[][] c = new double[D][D]; for( int i= 0; i < D; i++){ for (int j = 0; j < D; j++) {
int D = 3;
double[][] c = new double[D][D];
for( int i= 0; i < D; i++){
for (int j = 0; j < D; j++) {
c[Dest.get(i)-1][Dest.get(j)-1]
=roots[Origin.get(i)-1][Origin.get(j)-1];
}
}
System.out.println(Arrays.deepToString(c));
例如:
double[][] c = new double[][];
for( int i:Origin){
for(int j:Dest){
c[i][j]=roots[i][j];
}
}
我该怎么做呢?我不太确定我是否理解。但是Java中的矩阵是基于0的。所以需要从matlab矩阵索引中减去1 试试这个。我不确定您想如何应用Origin和Dest
int D = 3;
double[][] c = new double[D][D];
for( int i= 0; i < D; i++){
for (int j = 0; j < D; j++) {
c[Dest.get(i)-1][Dest.get(j)-1]
=roots[Origin.get(i)-1][Origin.get(j)-1];
}
}
System.out.println(Arrays.deepToString(c));
intd=3;
double[]c=新的double[D][D];
对于(int i=0;i
这是我正在做的一个示例,您可以自己应用该技术。
看看这是否符合你的要求。它使用了你帖子中的样本数据,因为我没有MatLab
int D = 3;
double roots[][] = { { 0.5, 0.4791428571428572, 0.0 },
{0.0,Double.POSITIVE_INFINITY,Double.POSITIVE_INFINITY},
{ 0.4791428571428572, 0.0, Double.POSITIVE_INFINITY, } };
System.out.println("Before copying");
for (double[] a : roots) {
System.out.println(Arrays.toString(a));
}
double[][] c = new double[D][D];
for (int i = 0; i < D; i++) {
for (int j = 0; j < D; j++) {
c[Dest.get(i)-1][Dest.get(j)-1] = roots[Origin.get(i)-1]
[Origin.get(j)-1];
}
}
System.out.println("\nAfter copying");
for (double[] a : c) {
System.out.println(Arrays.toString(a));
}
int D=3;
双根[][]={{0.5,0.4791428571428572,0.0},
{0.0,Double.正无穷大,Double.正无穷大},
{0.4791428571428572,0.0,双正无穷大,};
System.out.println(“复制前”);
for(双[]a:根){
System.out.println(Arrays.toString(a));
}
double[]c=新的double[D][D];
对于(int i=0;i
谢谢您的帮助,但它不起作用。我很抱歉。我是一个初学者。通过你的代码,我得到了以下信息:[0.0,无穷大,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.5,0.4791428571428572,0.0],[0.0,无穷大,无穷大],[0.4791428571428572,0.0],我将用这些值创建一个新的矩阵,但是我想使用Origin和Dest作为索引。
int D = 3;
double roots[][] = { { 0.5, 0.4791428571428572, 0.0 },
{0.0,Double.POSITIVE_INFINITY,Double.POSITIVE_INFINITY},
{ 0.4791428571428572, 0.0, Double.POSITIVE_INFINITY, } };
System.out.println("Before copying");
for (double[] a : roots) {
System.out.println(Arrays.toString(a));
}
double[][] c = new double[D][D];
for (int i = 0; i < D; i++) {
for (int j = 0; j < D; j++) {
c[Dest.get(i)-1][Dest.get(j)-1] = roots[Origin.get(i)-1]
[Origin.get(j)-1];
}
}
System.out.println("\nAfter copying");
for (double[] a : c) {
System.out.println(Arrays.toString(a));
}