每当我将两个一维数组作为参数传递给一个二维数组时,它就工作得很好,但是当我试图将三个一维数组传递给一个三维数组参数方法时,它就会产生错误,但是当我将三个一维数组传递给二维数组时,同样的效果也会很好。
这种行为的原因是什么?
二维一维数组到二维方法:-
int[] c=new int[] {4,50};
m1(new int[]{10,20},c);
public static void m1(int[]... a)]
三维一维数组到三维方法:-,error - The method m1(int[][]...) in the type Asd is not appl
可以在多维数组上使用range和len吗?
使用var a 3int8或
package main
func main () {
var a [3][5]int8
for h := range a {
println(h)
}
println(len(a))
}
两者都产生0 1 2 3?
感谢dystroy的回答,这是一个我能够适应的写和读三维数组的例子(在这里发帖是因为我很难找到这样的例子,所以也许这会对其他人有帮助):
package main
func main() {
我正在将一个旧的VC++代码翻译成C#。在C++程序中,我有一个三维数组,在运行时指定了三维数组,
int * init_ltr [26][28];
int init_ltr_size = x; // gets assigned to something
// array allocated and initialized
for (i=0; i < 26; i++)
for (j=0; j < 28; j++)
init_ltr[i][j] = new int [init_ltr_size];
之后,我可以参考以下内容:
init_ltr[f
在我的应用程序中,我有一个非常大的字节数组,它是一个扁平的三维数组,我们使用3个嵌套的for循环(x,y,z)填充数组,然后使用一些数学方法得到我们想要的值,特别是:
若要获取数组中的索引,请执行以下操作:
return x + z*SizeX + y*SizeX*SizeZ;
并返回x/y/z坐标,给定索引:
int index = pos;
var y = (ushort) (pos/SizeX/SizeZ);
pos -= y*SizeX*SizeZ;
var z = (ushort) (pos/SizeX);
pos -= z*SizeX;
var x = (ushort) pos;
我有一个三维矩阵X,尺寸为a x b x c。
我想在MATLAB中创建一个三维矩阵Y,如下所示:
X = rand(10, 10, 5);
[a, b, c] = size(X);
for i = 1 : c
for j = 1 : a
for k = 1 : b
if j<a && k<b
Y(j, k, i) = X(j+1, k, i) + X(j, k+1, i).^4;
else
Y(j, k, i) = X(a,
我想在pgAdmin中为postgis编写一个基于postgresql的代码。它定义了一个三维几何阵列.
我用了这段代码:
DECLARE
G geometry[9][9][9];
BEGIN
for i IN 1..9 LOOP
for j IN 1..9 LOOP
for k IN 1..9 LOOP
G[i][j][k] := [value that I want];
END LOOP;
END LOOP;
END LOOP;
但它返回了以下错误:
"array subscript out of range&
我必须使用A类作为元素创建一个三维数组,A类的定义如下所示,我应该使用vector<vector<vector<A> > >还是boost::multi_array?哪一个更好?
struct C
{
int C_1;
short C_2;
};
class B
{
public:
bool B_1;
vector<C> C_;
};
class A
{
public:
bool A_1;
B B_[6];
};
如果我想构建一个三维数组,我可以这样写(x是三维数组) for i in range(pN):
for j in range(C):
for k in range(K+1):
X[i][j][k] = random.uniform(0,1) #random initialize 但是,如何才能使这段代码更具可读性呢?(例如,不要使用3 for循环) 谢谢!