Interpolate positions between 2 matrix
1 view (last 30 days)
Show older comments
Jose Martinez
on 18 Feb 2019
Commented: Jose Martinez
on 19 Feb 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.
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!
0 Comments
Accepted Answer
Akira Agata
on 18 Feb 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
More Answers (0)
See Also
Categories
Find more on Interpolation 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!