Я не знаю, если это быстрее, я полагаю, что так, но разница может быть очень мала, но вот один из способов:
m(sub2ind(size(m),1:length(v),r(1:length(v))))=v;
Если r
является вектором столбца, то sub2ind
будет жаловаться на размер векторов, вы можете просто взять его транспонирование, и оно решит это.