Matlab具有条件的多个矩阵

Alo*_*iel 1 matlab matrix

我知道我可以传递矩阵的所有元素并做到这一点.

但也许还有另一种选择.

我想要做:

mat1 = mat2 * mat1;
Run Code Online (Sandbox Code Playgroud)

mat1中的每个元素变为负数或大于255,我想留下前一个元素.

例如(结果不正确,这仅用于示例):

mat1 = [10  25  12
        33  7   163
        232 13  77]

mat2 = [-1  2  -3
         4 -5   6
         -7 -8  9]
Run Code Online (Sandbox Code Playgroud)

asume mat1 = mat2*mat1给出:

mat1 = [-77.32  59    298
        0       -33   12
        -600     256   80]
Run Code Online (Sandbox Code Playgroud)

所以我想修复mat1为:

mat1 = [10   59  12
        0    7   12
        232  13  80]
Run Code Online (Sandbox Code Playgroud)

Phi*_*ipp 5

如果我理解正确,你有一个矩阵乘法

mat2 * mat1
Run Code Online (Sandbox Code Playgroud)

最好是将矩阵乘法结果存储在第三个矩阵中

mat3 = mat2 * mat1
Run Code Online (Sandbox Code Playgroud)

idx = (mat3 < 0 | mat3 > 255)
Run Code Online (Sandbox Code Playgroud)

你有一个矩阵,你想要替换的地方,零没有.应用此索引以使用mat1的值替换mat3中的值

mat3(idx) = mat1(idx)
Run Code Online (Sandbox Code Playgroud)

结果是一个矩阵,其中小于0或大于255的每个元素都已被mat1的值替换.