gpt4 book ai didi

android - 为什么 Jama 矩阵的内维在第一次迭代中一致,但后来却不一致?

转载 作者:行者123 更新时间:2023-12-03 16:21:13 24 4
gpt4 key购买 nike

关注 Jama矩阵在我的代码中定义:

P: 3*3 Matrix
I: 3*3 identity Matrix
K: 3*2 Matrix
H: 2*3 Matrix
Q: 3*3 Matrix

以下是我的代码 fragment :
private Matrix getP() {
P= (I.minus(K.times(H))).times(Q);
Log.d("csv", "P is calculated");
return P;
}

运行代码时,在第一次迭代时它可以工作,即 P is calculated在 Logcat 上打印。但是,它只发生一次,应用程序就会停止。以下是错误:
 java.lang.IllegalArgumentException: Matrix inner dimensions must agree.

如果 Matrix 内部维度是错误,它如何在第一次迭代中运行?我在 this 获得了一些关于内部维度的信息。关联。但是,我无法弄清楚解决方案。当手动检查方程时,矩阵维度匹配。
我的方法有什么问题吗??

谢谢你。

最佳答案

你介意显示你是怎么打电话的getP ?无论我点击多少次fab,以下工作都有效按钮。

class MainActivity : AppCompatActivity() {

val I = Matrix.identity(3,3)
val K = Matrix(3,2,5.0)
val H = Matrix(2,3,7.0)
val Q = Matrix(3,3,8.0)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

fab.setOnClickListener { view ->
getP()
}
}

private fun getP():Matrix{
val P = (I.minus(K.times(H))).times(Q)
Log.d("MainActivity","P is calculated")
return P
}
}

getP返回您将结果存储在哪里?您是否可能覆盖其中一个矩阵?

更新

如果您的情况是使变量最终不是您的选择,那么您可以记录每个矩阵的维度,然后调试发生变化的维度。
private fun getP():Matrix{
Log.d(TAG,"I dimension: ${I.rowDimension} x ${I.columnDimension}")
Log.d(TAG,"K dimension: ${K.rowDimension} x ${K.columnDimension}")
Log.d(TAG,"H dimension: ${H.rowDimension} x ${H.columnDimension}")
Log.d(TAG,"Q dimension: ${Q.rowDimension} x ${Q.columnDimension}")

val P = (I.minus(K.times(H))).times(Q)
Log.d(TAG,"P is calculated")
return P
}

关于android - 为什么 Jama 矩阵的内维在第一次迭代中一致,但后来却不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58625085/

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