映射切片

时间:2016-01-22 17:42:21

标签: julia

Julia的import java.util.Arrays; import java.util.Scanner; public class EvensAndOdds { private static int countEm(int[] array) { int numOdd = 0; for(int i=0; i< array.length; i++) if(array[i] % 2 == 1) numOdd ++; return numOdd; } public static int[] getAllEvens(int[] array) { int x = 0; int[] evens = new int[array.length - countEm(array)]; for(int i=0; i<array.length; i++) { if(array[i]%2==0) { evens[x] = array[i]; x ++; } } return evens; } public static int[] getAllOdds(int[] array) { int y = 0; int[] odds = new int[countEm(array)]; for (int i = 0; i < array.length; i++) { if (array[i] %2 == 1) { odds[y] = array[i]; y++; } } return odds; } public static void main(String[] args) { int[] input = {2,4,6,8,10,12,14}; System.out.println(Arrays.toString(input)); System.out.println("odds = " + EvensAndOdds.getAllOdds(input)); System.out.println("evens =" + EvensAndOdds.getAllEvens(input)); } } 和理解语法可以轻松映射多维数组的所有元素。

是否支持对数组的 slices 进行映射?

作为一个愚蠢的例子,给定3x3x100矩阵,我可能想要映射所有100个3x3x_切片。我可能会说,推导出每个3x3切片的行列式,最终得到1x1x100的决定因子阵列。

1 个答案:

答案 0 :(得分:2)

看看mapslices。对于问题建议使用size(A)==(3,3,100)的示例。计算3个3x3矩阵的100个决定因素可以通过以下方式完成:mapslices(det,A,(1,2))

请注意,生成的矩阵仍然是3维的,squeeze可用于去掉1号尺寸。在示例中:

squeeze(mapslices(det,A,(1,2)),(1,2))