作业帮 > 综合 > 作业

C#中我把矩阵作为参数传入函数中,但是在函数中矩阵的变化会影响原来的矩阵.

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/29 02:44:09
C#中我把矩阵作为参数传入函数中,但是在函数中矩阵的变化会影响原来的矩阵.
double[,] Juzhen = new double[,] { { 1, 0, 1 }, { 0, 1, 1 }, { 0,0,0 } };
Subspace example = new Subspace();
f = example.GetEigenValueAndEigenVector(Juzhen, 3, ref eigenvalue, ref eigenvector);//调用方法
但是在运行时 Juzhen里的元素值跟着方法里边计算会变,为什么?
我没多少分,希望能给我解答下
C#中我把矩阵作为参数传入函数中,但是在函数中矩阵的变化会影响原来的矩阵.
数组是按引用传值的,你在GetEigenValueAndEigenVector方法中对第一个参数的修改会直接改变juzhen的值,如果你不希望动juzhen的值,要修改的话可以这样,double[,] Juzhen = new double[,] { { 1, 0, 1 }, { 0, 1, 1 }, { 0,0,0 } };
Subspace example = new Subspace();
double[,] backup = (double[,])Juzhen.Clone();
f = example.GetEigenValueAndEigenVector(backup, 3, ref eigenvalue, ref eigenvector);//调用方法