I need to map a binary array to 2 differnet values corresponding to 0 & 1
1 view (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
dpb
on 29 Jun 2018
Edited: dpb
on 30 Jun 2018
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 Comments
More Answers (0)
See Also
Categories
Find more on Multidimensional Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!