C# 如何在for循环中声明矩阵 (k=0;k

C# 如何在for循环中声明矩阵 (k=0;k,c#,C#,对于上面的代码,如果每次k发生变化时都将qk(k)设置为一个新的矩阵。有什么办法吗?我试图声明为double[,]qk[k]={{Xnew[k+1]},{Ynew[k+1]},{Anew[k+1]}但它不起作用 例如,当我的k增加时,我的Xnew、ynew和anew值也将随k而改变。因此,我将声明q(k),其中k将随着k的增加而增加,并存储值xnew ynew和anew 希望能让你更轻松地在循环中声明矩阵,因为你的声明是错误的。如果不是double[,]qk=newdouble[,]{{Xnew

对于上面的代码,如果每次k发生变化时都将qk(k)设置为一个新的矩阵。有什么办法吗?我试图声明为
double[,]qk[k]={{Xnew[k+1]},{Ynew[k+1]},{Anew[k+1]}但它不起作用


例如,当我的k增加时,我的Xnew、ynew和anew值也将随k而改变。因此,我将声明q(k),其中k将随着k的增加而增加,并存储值xnew ynew和anew

希望能让你更轻松地在循环中声明矩阵,因为你的声明是错误的。如果不是
double[,]qk=newdouble[,]{{Xnew[k+1]},{Ynew[k+1]},{Anew[k+1]}。是否要在当前循环迭代之外访问
qk
?另外,您是否需要一个矩阵集合,其中每个矩阵都可以通过其索引
k
访问,并且每个矩阵的维数为3x1?实际上,我正在进行MPC控制器编程。我需要我的qK作为我的k增加。例如,当k=1时,我将得到qk[1],并将值存储为矩阵[X[2]Y[2]和[2]],当k=2时,我将得到qk[2],并将值存储为矩阵[X[2]Y[2]和[2]]。对于这个矩阵,我还将使用另一个循环的for循环之外的另一个3乘1矩阵进行矩阵相减。对不起,如果我的解释不清楚。@weixiang很抱歉,但我现在还不清楚。此外,请用其他信息编辑您的问题,而不是将其写入评论中。
for (k = 0; k < 5; k++)
{
    Xnew[k + 1] = Xold[k] + (T * MPCV[k]) * Math.Cos(Aold[k]);
    Ynew[k + 1] = Yold[k] + (T * MPCV[k]) * Math.Sin(Aold[k]);
    Anew[k + 1] = Aold[k] + (T * MPCW[k]);

    Console.WriteLine("\nXnew = {0}", Xnew[k + 1]);
    Console.WriteLine("Ynew = {0}", Ynew[k + 1]);
    Console.WriteLine("Tnew = {0}", Anew[k + 1]);

    double[,] qk = { { Xnew[k + 1] }, { Ynew[k + 1] }, { Anew[k + 1] } };
    Console.WriteLine("the element is {0}", Xnew[k + 1]);
    Console.WriteLine("the element is {0}", Ynew[k + 1]);
    Console.WriteLine("the element is {0}", Anew[k + 1]);
}