gpt4 book ai didi

java - 使用java生成repmat()方法

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:46 26 4
gpt4 key购买 nike

我们在 matlab 中使用 repmat(arr,2,1,2) 方法生成以下格式:arr = [6,3,9,0];

 L(:,:,1) =
6 3 9 0
6 3 9 0

L(:,:,2) =
6 3 9 0
6 3 9 0

我尝试生成相同格式的java代码是

class test24{
public static void main ( String [] args ) {
int[] arr = {6,3,9,0};
test24 test = new test24();
System.out.println(Arrays.deepToString(test.repmat(arr,2,1,2)));
}
public static int[][][] repmat (int[] array, int rows, int columns, int depth)
{
int arrayColumns = array.length;
int resultColumns = arrayColumns * columns;

int[][][] result = new int[rows][resultColumns][depth];

int z = 0;
for (int d = 0; d < depth; d++)
{
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < resultColumns; c++)
{
result[r][c][d] = array[z++];

if (z >= arrayColumns)
{
z = 0;

}
}
}
}
return result;
}
}

java代码的结果是:

[[6,6],[3,3],[9,9],[0,0]],[[[6,6],[3,3],[9,9],[0,0]]???

请提出任何建议

最佳答案

我相信 深度 参数导致数组中的每个值都有两个值(int[][][] result = new int[rows][resultColumns][深度]; 将变为(给定输入 rows=2、columns=1 和 height=2 以及初始数组 4)new int[2][1][2])。

不完全确定 repmat 方法到底应该做什么,可能是将数组的创建更改为 int[][][] result = new int[深度][rows][resultColumns]; 解决了问题。

关于java - 使用java生成repmat()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37247947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com