output of interp2 is single - why?

1 view (last 30 days)
Karen Bemis
Karen Bemis on 9 Aug 2018
Edited: Stephen23 on 10 Aug 2018
when I use the following code, the output zcovis is a single rather than a double.
if true
surf(xb,yb,zb)
[xcovis,ycovis]=ginput(1);
zcovis = interp2(xb,yb,zb,xcovis,ycovis);
end
xb,yb,zb are imported data but xb,yb should be consistent with meshgrid format (zb is height above surface not a third coordinate)
why is zcovis a single? I'd like to use it to place a text comment on a another figure:
if true
text(0.1,zcovis+4.2,'COVIS')
end
  2 Comments
KSSV
KSSV on 9 Aug 2018
Check the classes of xb,yb and zb..they could be single.
Walter Roberson
Walter Roberson on 9 Aug 2018
What are class(xb), class(yb), class(zb) ?

Sign in to comment.

Answers (1)

ANKUR KUMAR
ANKUR KUMAR on 9 Aug 2018
It's because of your xb,yb,zb, xcovis and ycovis are single. If you want your output in double, just use double before using interp2.
zcovis = double( interp2(xb,yb,zb,xcovis,ycovis));
  3 Comments
Walter Roberson
Walter Roberson on 10 Aug 2018
zcovis = interp2(xb, yb, double(zb), xcovis, ycovis);
ANKUR KUMAR
ANKUR KUMAR on 10 Aug 2018
Edited: Stephen23 on 10 Aug 2018
Make all inputs having the same class. This works well, as suggested by Walter Roberson.

Sign in to comment.

Products


Release

R2015b

Community Treasure Hunt

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

Start Hunting!