Borrar filtros
Borrar filtros

How to draw a line on a logical matrix?

3 visualizaciones (últimos 30 días)
John Wray
John Wray el 19 de Mayo de 2016
Editada: Andrei Bobrov el 19 de Mayo de 2016
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]

Respuestas (1)

Andrei Bobrov
Andrei Bobrov el 19 de Mayo de 2016
Editada: Andrei Bobrov el 19 de Mayo de 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
or use strel from Image Processing Toolbox
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)));
  1 comentario
John Wray
John Wray el 19 de Mayo de 2016
Hi,
thanks for your answer, I mean not to create a diag matrix, the two points can be any value,.

Iniciar sesión para comentar.

Categorías

Más información sobre Elementary Math en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by