gpt4 book ai didi

java - 用java实现 vector 乘法

转载 作者:行者123 更新时间:2023-12-02 01:56:07 24 4
gpt4 key购买 nike

目前我正在尝试实现一种能够在 java 中使用 vector 和矩阵乘法的方法,现在我有代码:

package ai2;

public class MyMatrix {
int[][] alpha;
int a;
int b;
int rowsB;
int colsB;

public MyMatrix(int a, int b) {
this.a = a;
this.b = b;
alpha = new int[a][b];
for (int k = 0; k < a; k++) {
for (int l = 0; l < b; l++) {
alpha[k][l] = 0;
}
}
}

public void insertValue(int o, int q, int z) {
this.alpha[o][q] = z;
}

public void print() {
for (int k = 0; k < a; k++) {
for (int l = 0; l < b; l++) {
System.out.print(this.alpha[k][l] + " ");
}
System.out.println();
}
}

public void multiplyMatrix(MyMatrix B) {
MyMatrix created = new MyMatrix(this.a, B.b);
for (int m = 0; m < a; m++) {
for (int k = 0; k < b; k++) {
for (int l = 0; k < this.a; l++) {
myMatrixC[i][j] += myMatrixA[i][k] * myMatrixB[k][j];
}
}
}
}

public static void main(String[] args) {
MyMatrix a = new MyMatrix(2, 2);
a.insertValue(0, 0, 1);
a.insertValue(1, 1, 1);
a.print();
MyMatrix b = new MyMatrix(2, 2);
b.insertValue(0, 0, 1);
b.insertValue(1, 0, 1);
// System.out.println(a);
}
}

问题是我的multiplyMatrix方法,它需要一个MyMatrix对象,但我无法使用例如:

MyMatrixA[k][l]

我需要某种想法来达到这些值,或者可能需要一个更智能的实现,我无法使用java之外的包,感谢任何帮助!

最佳答案

Java中的方括号仅用于访问数组元素。

您的语法将无法编译,并且您无法以这种方式访问​​矩阵元素。

为什么不在您的 MyMatrix 类中实现一个 getAlpha getter,它返回 alpha 的值(或者更好,是一个副本)其中,以确保不变性)?

然后您可以使用 theMatrixInstance.getAlpha()[k][l] 引用它。

您还可以稍微简化一下并实现一个采用两个索引的 get 方法。

这将允许您检查给定的索引是否在二维数组的范围内,并抛出自定义异常(或返回一些默认值),而不是您否则会抛出的 ArrayIndexOutOfBoundsException得到。

关于java - 用java实现 vector 乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52261351/

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