A is less than a threshold
Show older comments
m=256;
e=0.5;
for x=1:m
for y=1:m
if A(x,y)<0.5
s_dark(x,y)=A(x,y)^e;
end
end
end
Hello everyone.I have some problem in this code.The values less than 0.5 shold be stored in a variable s_dark.But i didn't get it.It store values less than 0.5 and also greater than 0.5.I've attached the s_dark variable below.please see through it.your help is really appreciated.
Accepted Answer
More Answers (1)
Image Analyst
on 15 Apr 2020
Not exactly sure what you want where A > 0.5, a value of 0 or of the original A? So here are both options:
% Initialization steps.
m = 256;
A = 0.7 * rand(m, m)
e = 0.5;
% OPTION 1
% s_dark equals A except where A is less than 0.5 where
% it will replace values of A less than 0.5 with
% the value raised to the e power
s_dark = A; % Initialize;
map = A < 0.5; % Logical matrix of where A is less than 0.5.
s_dark(map) = A(map) .^ e;
% OPTION 2
% s_dark equals 0 except where A is less than 0.5 where
% it will be the values of A raised to the e power
s_dark = zeros(size(A)); % Initialize;
map = A < 0.5; % Logical matrix of where A is less than 0.5.
s_dark(map) = A(map) .^ e;
Categories
Find more on Matrix Indexing 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!