How to draw a line on a logical matrix?
    2 views (last 30 days)
  
       Show older comments
    
Hi,
Assume a blank matrix:
m=[0 0 0 0 0
   0 0 0 0 0
   0 0 0 0 0
   0 0 0 0 0
   0 0 0 0 0]
I want to draw a line between a=[1 1], b=[5 5], and returned m like this:
m = [1 0 0 0 0
     0 1 0 0 0
     0 0 1 0 0
     0 0 0 1 0
     0 0 0 0 1]
0 Comments
Answers (1)
  Andrei Bobrov
      
      
 on 19 May 2016
        
      Edited: Andrei Bobrov
      
      
 on 19 May 2016
  
      diag(5)
or
z = zeros(6.,7);
a=[2 1];
b=[4 7];
xy = [a; b];
t = diff(xy);
t0 = t(:,1)./t(:,2);
y = @(x)(x - a(2))*t0 + a(1);
x1 = (1:size(z,2))';
y1 = round(y(x1));
z(size(z,1)*(x1 - 1) + y1) = 1
 z = zeros(6.,7);
 a=[2 1];
 b=[4 7]; 
 t = diff([a; b]);
 S = strel('line',sqrt(sum(t.^2)),atand(t(1)/-t(2)));
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
