【发布时间】:2014-12-16 13:37:45
【问题描述】:
我正在尝试在 C 中编写一些代码,它获取现有(之前制作的)矩阵的元素并从中创建一个新矩阵。想象一下,我有一个像R[1][303] 这样的矩阵,我想从中创建一个新矩阵,比如K[303 - n + 1][1],它将矩阵R 的元素从其列n 存储到其最后一列(即第303 列)。我在n上有一个for循环,我开始写的代码是这样的:
for (n=1; n<=201; n++)
{
float K[303-n+1][1]=????
}
如果我想用 Matlab 写,我会写:
for n=1:201
K=[];
K(1:303-n+1,1)=R(n:end);
end
但我不知道我必须如何写这部分
R(n:end)
在 C 中。如果有人可以给我提示,我将不胜感激。
【问题讨论】:
-
别误会,但你读过Create C Source MEX-File吗?如果你有,你应该能够为它生成某种 C 代码。然后你会问一个与你卡住的代码部分相关的问题。
-
所以你的意思是把所有列从一个矩阵复制到另一个矩阵的行?
-
您的 Matlab 代码没有意义,例如,您在每次迭代中都分配了
K(1,1)。 -
Gopi,不是所有的列,在每次迭代中我想复制从 n 开始的列直到最后一列,并用它们制作我的新矩阵 (K) 的行。因此,在每次迭代中,新建矩阵的大小都会发生变化,例如 k[302]、K[301]、K[300]、...、k[103]。
-
您的意思是将矩阵
R中的n列复制到矩阵K中的行n,对于矩阵R中的每一行,矩阵K中的等效列?