Interpolate positions between 2 matrix

2 visualizaciones (últimos 30 días)
Jose Martinez
Jose Martinez el 18 de Feb. de 2019
Comentada: Jose Martinez el 19 de Feb. de 2019
Hello,
If you see the picture below, I am representing dinamically the blue point with a matrix and imagesc function. What I would like to do is filling the gap bewteen points with more points, so the final graph woould look like a line.
Untitled.jpg
An example how I am plotting the graph
% First point position in the matrix
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
% Next time period the matrix will have other values for the second "blue" point
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 0 1 0
% I would like to get automatically a matrix that interpolate between both "1" values and get something like below to draw a line,
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
I hope to make myself clear,
Thanks in advance!

Respuesta aceptada

Akira Agata
Akira Agata el 18 de Feb. de 2019
How about the following?
% First point position in the matrix
M1 = [0 0 0 1 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0;
0 0 0 0 0 0 0];
% Next time period the matrix will have other values for the second "blue" point
M2 = [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 0 1 0];
[row,col] = find(M1 | M2);
row2 = (1:4)';
col2 = round(interp1(row,col,row2));
M3 = zeros(size(M1));
M3(sub2ind(size(M3),row2,col2)) = 1;
The result is:
>> M3
M3 =
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
  1 comentario
Jose Martinez
Jose Martinez el 19 de Feb. de 2019
Brilliant, I think the idea will work wit my project!
Thank you so much

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Graphics Performance en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by