如何在matlab中更改3d矩阵中的值?

时间:2014-01-07 18:47:12

标签: matlab matrix

假设有一个矩阵

m = magic(5)

ans =
    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

众所周知,为了在0×10矩阵中更改特定值(例如:更改为m,如果大于n),

    m(m>10) = 0
m =
     0     0     1     8     0
     0     5     7     0     0
     4     6     0     0     0
    10     0     0     0     3
     0     0     0     2     9

我有一个k×m×n矩阵,由随机0 s,12 s组成。 k的迭代值为110,不会更改。

如何将1更改为0,然后将2更改为1?但k应保持不变。只有mn中的值。

1 个答案:

答案 0 :(得分:1)

作为一个例子"以完全相同的方式做到":

>> m = round(rand(3,2,2)*2)
m(:,:,1) =
     1     1
     0     0
     1     2
m(:,:,2) =
     1     1
     0     1
     2     1

>> m(m==1)=0
m(:,:,1) =
     0     0
     0     0
     0     2
m(:,:,2) =
     0     0
     0     0
     2     0

>> m(m==2)=1
m(:,:,1) =
     0     0
     0     0
     0     1
m(:,:,2) =
     0     0
     0     0
     1     0

在这种情况下,m==2返回的3D逻辑掩码可用于任何大小相同的数组。