Matrix 用布尔数组选择多维矩阵的一部分
我想通过另一个带有布尔项的矩阵来选择多维数组的一部分 因此,如果单元格为真,我想在单元格中输入数字。如果为false,则应为0 例如: M=randInt64[1:5],3,4,2 3x4x2数组{Int64,3}: [:,:,1]= 5 5 1 2 1234 4 2 5 4 [:,:,2]= 2 4 1 1 3531 1 1 4 5 B= 3x4位数组{2}: 假假假假 假真假假 假假真假 结果应该是: Mred= [:,:,1]= 0 0 0 0 0200 050 [:,:,2]= 0 0 0 0 0500 050 我试过这样的东西: Mred=M[B,:] 或 Mred=M[B,1,B,2,2]Matrix 用布尔数组选择多维矩阵的一部分,matrix,multidimensional-array,julia,Matrix,Multidimensional Array,Julia,我想通过另一个带有布尔项的矩阵来选择多维数组的一部分 因此,如果单元格为真,我想在单元格中输入数字。如果为false,则应为0 例如: M=randInt64[1:5],3,4,2 3x4x2数组{Int64,3}: [:,:,1]= 5 5 1 2 1234 4 2 5 4 [:,:,2]= 2 4 1 1 3531 1 1 4 5 B= 3x4位数组{2}: 假假假假 假真假假 假假真假 结果应该是: Mred= [:,:,1]= 0 0 0 0 0200 050 [:,:,2]= 0 0
还有很多其他的东西,但是缺少了一些东西,而且维度似乎很高。您可以使用元素乘法:
M.*B
您可以使用元素乘法:
M.*B
非常感谢。如果我遵循你的建议:M[1,2].*B,那么我省略了示例的第三维。所以你的解决方案行不通。@Hainmueck但是,如果你使用Felipe的建议,而不是在你的评论中使用M[1,2].*B,那么它会产生你在问题中要求的结果。哦,对不起,我的错。我不知怎么搞砸了,它只是按照我在评论中写的方式起作用。现在它成功了,我只需要弄清楚为什么它不适用于四维。原始尺寸是M:2x2500X3X1000和B:[2500x3]谢谢。如果我遵循你的建议:M[1,2].*B,那么我省略了示例的第三维。所以你的解决方案行不通。@Hainmueck但是,如果你使用Felipe的建议,而不是在你的评论中使用M[1,2].*B,那么它会产生你在问题中要求的结果。哦,对不起,我的错。我不知怎么搞砸了,它只是按照我在评论中写的方式起作用。现在它成功了,我只需要弄清楚为什么它不适用于四维。原始尺寸是M:2x2500X3X1000和B:[2500x3]