I need to map a binary array to 2 differnet values corresponding to 0 & 1

A= zeros(320,320); A(60:180,60:180)=1;
lets say I wanna make all 1's = 2+3i and all 0's equals to 8-4i.
What would be the syntax to map them to corresponding values. Thanks

 채택된 답변

dpb
dpb 2018년 6월 29일
편집: dpb 2018년 6월 30일
One of a zillion ways...
C=complex(2*ones(size(A)),3*ones(size(A)));
C(C==0) = 8-4i;
Another less "deadahead" but one-liner...
C=interp1([0 1],[8-4i 2+3i],A,'nearest');
ADDENDUM
A variation on the latter is simple lookup...requires the temporary vector, though.
v=[8-4i 2+3i]; % the values
C=v(A+1); % convert logical to array indices

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

태그

질문:

2018년 6월 29일

편집:

dpb
2018년 6월 30일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by