C# 从立方体中分割向量
我有一个用于向量输入的函数,但我需要在立方体上运行它。我的冲动是我需要从立方体中切出一个向量,然后在双for循环中运行它 这是伪代码:C# 从立方体中分割向量,c#,C#,我有一个用于向量输入的函数,但我需要在立方体上运行它。我的冲动是我需要从立方体中切出一个向量,然后在双for循环中运行它 这是伪代码: public static double[,,] cubefunction(double[,,] input) { int N = input.GetLength(0); var outputvector = new double[N,N,N]; for (int i = 0; i < N; i++) {
public static double[,,] cubefunction(double[,,] input)
{
int N = input.GetLength(0);
var outputvector = new double[N,N,N];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
outputvector[1:N,i,j] = vectorfunction(input[1:N,i,j]);
}
}
return outputvector;
}
公共静态双[,]立方函数(双[,]输入)
{
int N=input.GetLength(0);
var outputvector=新的双精度[N,N,N];
对于(int i=0;i
显然,
1:N
是获取整行的matlab符号。C#中是否有等价物?或者,如果不使用三重循环,我将如何进行此操作?如果使用锯齿数组,则可以获得整行,但是你也可以添加第三个for循环,因为它缺少坐标当然,三重循环始终是一个选项,但我希望避免这种情况,因为它有一个基于LINQ的解决方案,可以推广到你的需要。@JohnC:take skip对多个维度有效吗?我认为它更简单,但你是对的,LINQ不会自然地处理多个维度。您可以编写一个扩展方法来转换为一维数组(通过一些搜索找到)和基于索引的查询……但此时循环似乎更简单。