Converting the Domain of an Array

조회 수: 2 (최근 30일)
NH3
NH3 2018년 12월 5일
댓글: NH3 2018년 12월 5일
I have an array of m columns by n rows. The array corresponds to locations on a physical geometry, e.g. the value in cell [1,1] corresponds to the temperature at a physical x and y location. How do I convert my array into a function that can be plotted in the physical domain?
  댓글 수: 2
jonas
jonas 2018년 12월 5일
What do you mean? Do you want to fit a surface to your data, plot the scattered data points or interpolate and plot?
NH3
NH3 2018년 12월 5일
편집: NH3 2018년 12월 5일
Interpolate and plot.
Essentially, I am looking to convert the value in cell [1,1] to a solution to a function when x=0 and y=0, the value in cell [2,1] to the solution to the function when x=0 and y =0.25...and so on.

댓글을 달려면 로그인하십시오.

채택된 답변

jonas
jonas 2018년 12월 5일
편집: jonas 2018년 12월 5일
Read about scatteredInterpolant and post some data if you need help. Using meshgrid and griddata would probably suffice, but your description leads me to believe scatteredInterpoland is what you're looking for.
Use surf(x,y,z) or contourf(x,y,z) to plot. Note that you must interpolate z to a rectangular grid first, using the functions suggested above.
  댓글 수: 3
jonas
jonas 2018년 12월 5일
I assume your example array denoted x is actually z-data? When you pass a single array to contour, then it is interpreted as z-data and the indices are interpreted as xy-data. You can also pass xy-data to contour, which in your case are spatial coordinates. This can be really easy, if your data is already gridded, and a little bit harder if your data is scattered.
Try this:
T = [1,2,3,4,5;6 7 8 9 10; 11 12 13 14 15];
x = linspace(0,0.25,5);
y = linspace(0,0.1,3)
contourf(x,y,T)
NH3
NH3 2018년 12월 5일
Thanks!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by