Get the values of an array from indices in another array: Matlab

前端 未结 2 1374
情话喂你
情话喂你 2021-01-26 10:22

I have a 20x1 double array A, and a 1000x1 double array B.

I want to get array C, where array C will be 1000x1 doubl

2条回答
  •  清酒与你
    2021-01-26 10:54

    You don't need a loop for this, you can directly use:

    C = A(B)
    

    This takes advantage of MATLAB's matrix indexing, which is the way indexing is handled in MATLAB when an array is used instead of an integer.

    Take a look at the docs: https://uk.mathworks.com/help/matlab/math/matrix-indexing.html

    For example:

    A = [11 12 13];
    B = [1 2 3 1 2 3 3 2 1];
    C = A(B)
    
    C =
    
    11    12    13    11    12    13    13    12    11
    

    Ensure that B only contains integers which are valid indices of A (not less than 1 or greater than the length of A).

提交回复
热议问题