Попробуйте, если я правильно понял вашу проблему
newValue = 5;
valueToFind = 1;
vector = [2 3 4 6 1 3 2 1 3];
vector(vector==valueToFind) = newValue;
Обновление (чтобы ответить на ваш комментарий ниже):
Не существует единственно правильного способа сделать это, но я бы, вероятно, составил «таблицу» значений для поиска и того, что можно найти в их новых аналогах. Например,
valuesTable = [1 3 4 6 9;... %#old values
2 0 5 7 0]; %#new values
Затем вы можете пройти их следующим образом:
vector = [2 3 4 6 1 3 2 1 3];
valuesTable = [1 3 4 6 9;... %#old values
2 0 5 7 0]; %#new values
N = size(valuesTable,2); %#count indices to go through
for n = 1:N
old = valuesTable(1,n); %#get current old value
new = valuesTable(2,n); %#get corresp. new value
vector(vector==old) = new; %#replace the values
end
Могут быть и другие подходы, а не мой "табличный" подход, но я нахожу его ясным, ощутимым и легко читаемым.