How to make a surface plot for two vectors?

Hello,
I have two row-vectors, A (1X8000) and B (1X8000). What I want is their surface plot. I tried the commands below:
surf(A,B)
colorbar
But it does not work. The following error occurs.
Error using surf
Z must be a matrix, not a scalar or vector.
How can the surface plot of the two variables be made? Your help is valuable.

1 Kommentar

Nitya Patel
Nitya Patel am 23 Jun. 2023
Depending on what your data represents, there could be different ways to do it. One of the ways possible is this:
M = [A; B]';
surf(M);

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 23 Jun. 2023

0 Stimmen

You cannot do that. surf() and surface() can only handle 2D grids of data. For surf() and surface() the X and Y data do not need to be rectangular or even rectilinear -- you can even use them to plot a hemi-sphere for example -- but they do need to be 2D.
If you had three vectors instead of two vectors, you could consider using tools such as griddata or scatteredInterpolant

Gefragt:

am 23 Jun. 2023

Beantwortet:

am 23 Jun. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by