Изменить значения в матрице, если она соответствует таблице - PullRequest
0 голосов
/ 26 марта 2019

Здравствуйте, я пытаюсь сделать следующее:

Это мой стол:

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 Ответ

1 голос
/ 26 марта 2019

Это можно сделать очень легко с помощью 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...