Changing multiple elements (of known coordinates) of a matrix without a for loop

前端 未结 3 1926
南笙
南笙 2020-12-20 00:59

I have a matrix say

Z = [1 2 3;
     4 5 6;
     7 8 9]

I have to change its values, say at positions (2,2) and (3,1), to some specified v

3条回答
  •  感动是毒
    2020-12-20 01:30

    Use sub2ind with multiple entries for rows and columns

    Z(sub2ind(size(Z), rowNos, colNos))=0
    

    Example:

    Z = [1 2 3;
        4 5 6;
        7 8 9];
    
    rowNos = [2, 3];
    colNos = [2, 1];
    
    Z(sub2ind(size(Z), rowNos, colNos))=0
    
    Z =
    
         1     2     3
         4     0     6
         0     8     9
    

提交回复
热议问题