Why Contour matrix M ( [M,c] = contour(__) ) contains the data points exceeding xmax/ymax?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sergii Snegir
el 2 de Mzo. de 2021
Editada: Bruno Luong
el 2 de Mzo. de 2021
I have a contour plot (fig 1), plotted according to [M,h]=contourf(f,8). With this I slice contour #8. Thus, I expect to have in matrix M all (x,y) coordinates of the 8th contour. These coordinates have (logically) not to exceed the xmax/ymax (250/250). Instead, when I plot matrix M i have some values that larger then xmax/ymax (figure 2). According to the documentation (https://de.mathworks.com/help/matlab/ref/contour.html#mw_27139ced-212f-437f-abab-0ff7c175e33b),
the first pair of data is the Level and the number of Vertices. But plotting the contour(f,8) in Fig1 I should have only first pair of data in returned M which describe the leve 8 l!!!
Please explain their origin of larger data.
Figure 1
Figure 2 (Plotted M)
6 comentarios
Stephen23
el 2 de Mzo. de 2021
"how the automatically determined height correlats with the min, max values of input Z????"
I have no idea: the documentation only states "automatically", it does not give an algorithm. But if you are interested:
- search this forum for other discussions on this topic.
- use the internet archive to see if previous versions of the documentation included information on the algorithm.
Respuesta aceptada
Bruno Luong
el 2 de Mzo. de 2021
Editada: Bruno Luong
el 2 de Mzo. de 2021
[M,h]=contourf(f,8)
Return contours of 8 levels, not single level of value 8.
You might use this function to decode the output array https://www.mathworks.com/matlabcentral/fileexchange/28447-contourcs-to-obtain-contourc-output-as-a-struct-array
2 comentarios
Bruno Luong
el 2 de Mzo. de 2021
Editada: Bruno Luong
el 2 de Mzo. de 2021
The doc
"Use this argument to control the number and location of the contour lines. When you do not specify the levels, the contour function chooses the levels automatically.
- To draw contour lines at n automatically chosen heights, specify levels as the scalar value n.
- To draw the contour lines at specific heights, specify levels as a vector of monotonically increasing values.
- To draw contour lines at a single height k, specify levels as a two-element row vector [k k]."
I don't know what *you* see on your image, if I do this
f=peaks;
[M,h]=contourf(f,8)
I get this contour plot like there are 8 "heights" to me (counted from bright yellow to dark blue):
Más respuestas (0)
Ver también
Categorías
Más información sobre Contour Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!