MATLAB: Sub values into multiple rows and columns simutaneously

matrixmatrix manipulation

I have a 10×10 matrix. I want to sub a few values into the matrix simultaneously, with the other values being zero. It would be time-consuming to sub the values one by one. Is there any way to do this?
For example, A=[zeros(10,10)] A(1,1)=-4 A(2,2)=-4 A(3,3)=-4
Is there a way to sub -4 into these locations at once?

Best Answer

Replacing 3 elements is not time consuming and the show code is very efficient. If run time is critical, you are working on another problem, obviously. Then it is better to explain the real problem, and not a very simplified version of it, which omits the actual time consuming details.
If you want to replace some thousands of elements, whose indices are store in two vectors:
x = [1,2,3]; % Can be much longer
y = [1,2,3];
index = sub2ind(size(A), x, y);
A(index) = -4;