How to shift data in a 3D plot?
显示 更早的评论
Hi,
I have 2 plots, a Prescan and a Postscan, each generated from 65536 (256x256) surface z-coordinates. I used surf and Matlab automatically generate 3D plot. The X- and Y values are 1-256.
Now I would like to substract the Prescan from the Postscan to determine the wear volume. But there is an offset between both scans and therefore I need to shift every Postscan data by Y=-1. Do you know how to do this?
I tried to remove the first row and column of the Postscan data. But if I do this, I cant substract Post- and Prescsan, because they have a different size.
I attached a picture of the problem. This pictures shows the top view of what happens, when I overlay both scans with the hold command. You can see in the 4 circles, there is an offset between the Prescan (blue point) and Postscan (yellow point). They have to be at the same position.

回答(2 个)
jonas
2020-7-19
You just need to pass x and y data to surf.
surf(1:256, 0:255, Z)
Star Strider
2020-7-19
0 个投票
The easiest way might be to use the circshift function on the appropriate matrix in the appropriate dimension. Then, do the subtraction.
类别
在 帮助中心 和 File Exchange 中查找有关 Graphics Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!