如果匹配表,则更改矩阵中的值

时间:2019-03-26 11:35:54

标签: matlab

您好,我正在尝试执行以下操作:

这是我的桌子:

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

我有一个矩阵[25,1]。

我要执行以下操作:如果第一列和最后一列中的值与矩阵中的数字匹配,请将其值更改为“ 99”。

所以输出应该是这样:

99
2
3
4
99
99
7
8
9
99
99
12
13
14
99
99
17
18
19
99
99
22
23
24
99

这是我的尝试:

NT = zeros (x*y:1);
NT(:,1) = 1:x*y;

for i = 1:x*y
    for j = 1  
    if NT(i,j) == x1(i,j) 
       NT(i,j) = 99;

    end
    end 
end 

1 个答案:

答案 0 :(得分:1)

使用ismember可以很容易地做到这一点。让

A = [1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15; 16 17 18 19 20; 21 22 23 24 25];
B = (1:25).';
new_value = 99;

然后

B(ismember(B, A(:, [1 end]))) = new_value;

给予

B =
    99
     2
     3
     4
    99
    99
     7
     8
     9
    99
    99
    12
    13
    14
    99
    99
    17
    18
    19
    99
    99
    22
    23
    24
    99