How to shift data in a 3D plot?

조회 수: 9 (최근 30일)
Lukas Süßmilch
Lukas Süßmilch 2020년 7월 19일
답변: Star Strider 2020년 7월 19일
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
jonas 2020년 7월 19일
You just need to pass x and y data to surf.
surf(1:256, 0:255, Z)

Star Strider
Star Strider 2020년 7월 19일
The easiest way might be to use the circshift function on the appropriate matrix in the appropriate dimension. Then, do the subtraction.

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by