Filter löschen
Filter löschen

Plotting a surface with scatter data

4 Ansichten (letzte 30 Tage)
Benjamin
Benjamin am 5 Nov. 2018
Kommentiert: Walter Roberson am 6 Nov. 2018
I have density which is a 310x1 matrix. I have pressure which is a 310x41 matrix. Each column corresponds to a different temperature and each row from 1 to 310 just corresponds to the pressure at a given density in the density matrix.
The temperature is stored in temperature variable as a 1x41 matrix that goes from 100 to 300 in increments of 5 K. How can I plot this data as a surface?
If I try:
surfc(density,temperature,pressure)
I get that the data dimensions must agree.
I have my x-data, density as 310x1.
I have my y-data, temperature as 1x41
Then my z-data, pressure, is 310x41.
Why do the dimensions not agree?
I think I know the issue, but can I just tell MATLAB that x and y values do not change for each matrix? If I manually create every column with all the repetitive data it works. I am not sure if I am being clear here or not, but I imagine the way I am going about doing it is not the most efficient.

Akzeptierte Antwort

Matt J
Matt J am 5 Nov. 2018
[D,T]=meshgrid(density,temperature);
surf(D,T,pressure);
  1 Kommentar
Walter Roberson
Walter Roberson am 6 Nov. 2018
Alternately,
surfc(density, temperature, pressure.')
The difference is in the implicit grid ordering. Remember that MATLAB normally treats the first dimension of a 2D array as corresponding to y coordinates.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by