Matlab 将矩阵的某些值传递给逻辑掩码
假设我有一个逻辑矩阵MxN: 在这种情况下,M=N=5。 第二个矩阵A的大小为“MxNx3”RGB图像。我想传递一个关于掩码的函数值。例如,不属于遮罩的所有值:Matlab 将矩阵的某些值传递给逻辑掩码,matlab,indices,Matlab,Indices,假设我有一个逻辑矩阵MxN: 在这种情况下,M=N=5。 第二个矩阵A的大小为“MxNx3”RGB图像。我想传递一个关于掩码的函数值。例如,不属于遮罩的所有值: foo(A(~mask)); 确定这行代码是无用的,因为蒙版只给我一个RGB颜色的索引 正确的方法是什么? 我能用一条线就走吗? 您可以使用repmat在三维中重复遮罩3次。这将创建nnz~mask*3元素向量。您可以重塑repmat操作的结果,使行是遮罩中的真实元素,列是三维元素 foo(reshape(A(~repmat
foo(A(~mask));
确定这行代码是无用的,因为蒙版只给我一个RGB颜色的索引
正确的方法是什么?
我能用一条线就走吗?
您可以使用repmat在三维中重复遮罩3次。这将创建nnz~mask*3元素向量。您可以重塑repmat操作的结果,使行是遮罩中的真实元素,列是三维元素
foo(reshape(A(~repmat(mask, [1 1 3])), [], 3))
你也可以做一些类似的事情
foo(reshape(A(~repmat(mask, [1 1 3])), [], 3))