C#中我把矩阵作为参数传入函数中,但是在函数中矩阵的变化会影响原来的矩阵.double[,] Juzhen = new double[,] { { 1, 0, 1 }, { 0, 1, 1 }, { 0,0,0 } };Subspace example = new Subspace();f = example.GetEigenValueAndEigenVector(
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 13:54:05
C#中我把矩阵作为参数传入函数中,但是在函数中矩阵的变化会影响原来的矩阵.double[,] Juzhen = new double[,] { { 1, 0, 1 }, { 0, 1, 1 }, { 0,0,0 } };Subspace example = new Subspace();f = example.GetEigenValueAndEigenVector(
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#中我把矩阵作为参数传入函数中,但是在函数中矩阵的变化会影响原来的矩阵.double[,] Juzhen = new double[,] { { 1, 0, 1 }, { 0, 1, 1 }, { 0,0,0 } };Subspace example = new Subspace();f = example.GetEigenValueAndEigenVector(
数组是按引用传值的,你在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);//调用方法