Doubt in the specific line
2 views (last 30 days)
Show older comments
could you please explain the following code?
k = zeros(img_h, img_w, 4);
k(:,:,1) = (fxx./((1 + fx.^2).^(3/2))).*fvr; % hor
k(:,:,2) = (fyy./((1 + fy.^2).^(3/2))).*fvr; % ver
k(:,:,3) = (f11./((1 + f1.^2).^(3/2))).*fvr; % \
k(:,:,4) = (f22./((1 + f2.^2).^(3/2))).*fvr; % /
Wr = 0;
bla = k(:,:,1) > 0;
for y=1:img_h
for x=1:img_w
if(bla(y,x)) %%% I cant understand (bla(y,x))
Wr = Wr + 1;
end
0 Comments
Accepted Answer
KSSV
on 24 Jul 2020
Edited: KSSV
on 24 Jul 2020
It is bad to ask such questions......asking to explain a specific line or a code. You have code in hand, play around with that. Print the values, run the code in debug and you can make yourself clear with the code.
bla = k(:,:,1) > 0;
In the above case bla is a logical matrix. It will have 0, and 1's. 0 where the condition >0 is not met and 1's where the condition > 0 is met.
if(bla(y,x))
In the above line a if condition is used, the conditon is met or if is executed if bla(x,y) is 1 or the if contion is not met.
0 Comments
More Answers (1)
Walter Roberson
on 24 Jul 2020
The code
Wr = 0;
bla = k(:,:,1) > 0;
for y=1:img_h
for x=1:img_w
if(bla(y,x)) %%% I cant understand (bla(y,x))
Wr = Wr + 1;
end
end
end
can be entirely replaced with
Wr = nnz(k(:,:,1) > 0);
You are just counting the number of places that k(:,:,1) is true.
0 Comments
See Also
Categories
Find more on Debugging and Analysis 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!