plotting data
1 回表示 (過去 30 日間)
古いコメントを表示
hi all, i have a table with 3 variables(B/H)= 1,2,3,4,5,6,7,8 and fi= 0,10,20,30 and h which is depend on (B/H) and fi that contains 32 values. for example for fi=0 and (B/H)=1 >>h=1 fi=0 and (B/H)=2 >>h=1.02 ...... fi=30 and (B/H)=8 >>h=14800
h:[ 1 1.02 1.11 1.21 1.3 1.4 1.59 1.78
1 1.11 1.35 1.62 1.95 2.33 3.34 4.77
1.01 1.39 2.12 3.29 5.17 8.29 22 61
1.13 2.5 6.36 17.5 50 150 1400 14800 ]
> i would like to plot 3d data.then fit them with 2nd-order polynomial or surface equation for h in terms of fi and (B/H).would anyone please help me to solve that?
tnx in advance,
0 件のコメント
回答 (2 件)
Brenden
2011 年 7 月 4 日
You can make the plane you will plot h on with meshgrid ex:
[(B/H),fi]= meshgrid(domain of (B/H),domain of fi)
Then you will define the function h using (B/H) and fi or for simplicity you can change the above to X and Y. then you plot the data with:
surf(X,Y,h)
then you can fit this data with something similar to polyfit but you will have to look up the 3d fit
2 件のコメント
Brenden
2011 年 7 月 8 日
if h is a 3d array that is dependent on B/H and fi then you must have some function for this??.. what ever the function is it will most likely require a loop to fill a previously created zero array then you simply surf with your function h and X and Y being the independent variables ...
if you are working with recorded data then the size matters and so you will use meshgrid to make a grid for plotting the recorded data. note that meshgrid will add a zero term in the center of the domain you specify
ex: if you have a image that is 20 pixels wide and high then
[x,y] = meshgrid(-((pixel_dimension-1)/2):((pixel_dimension-1)/2),-((pixel_dimension-1)/2):((pixel_dimension-1)/2));
then mesh grid will make the correct size domain
参考
カテゴリ
Help Center および File Exchange で Interpolation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!