How to map one array elements to another array elements?
조회 수: 50 (최근 30일)
이전 댓글 표시
I have an output array which shows to which feeder the animal goes in each trial for 6 trials. There could be only 4 feeders(1,2,3,4)
feederNum = [1 2 2 4 3 1]
The corresponding concentration of reward at the feeders are
feeder1 : 40, feeder2 : 30, feeder3: 20, feeder4: 10
I want to get the corresponding concentraions for the feederNum array. So my desired output is
conc = [40 30 30 10 20 40]
I am wondering if there is any key-value like feature to achieve this?
댓글 수: 0
채택된 답변
추가 답변 (1개)
dpb
2022년 7월 29일
편집: dpb
2022년 7월 29일
>> awardCoef=[-10,50];
>> conc=polyval(awardCoef,feederNum)
conc =
40 30 30 10 20 40
>>
More generically if isn't a polynomial (linear in this case) relationship, use lookup tables...
award=40:-10:10;
conc=award(feederNum);
Here award can be anything for each; just has to have a 1:1 entry to the number of values in feederNum -- and, of course the values of feederNum are from 1:numel(feederNum) since MATLAB arrays are one-based indexing.
If must change the numbering system to not be 1:N, then interp1 with the 'nearest' option can be used as the lookup table; same identical idea but not a direct array indexing operation.
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!