EDA365电子论坛网
标题:
麻烦大神指点一下如何定义这个rhum, 成为一个合适的矩阵z?非常感谢!
[打印本页]
作者:
hpucq
时间:
2020-6-4 13:17
标题:
麻烦大神指点一下如何定义这个rhum, 成为一个合适的矩阵z?非常感谢!
1 X O, `4 z" U' `( s! G I
/ a8 |0 d6 j7 k$ R6 N! S
clear
* X$ q6 X$ N' Q9 o& z! v
ncinfo('rhum.mon.mean.nc');
+ P3 r# Q9 D3 B. G$ R
y_len=60;
; g$ K! o1 _2 E9 q5 [
t_len=854;
- Z8 G& t/ {" n" {
z_index=7
* }8 g& E+ p6 t3 z3 a' t
x_index=120
8 s# E3 i1 r% ^6 h$ Z; X
x = ncread('rhum.mon.mean.nc','lon');%x
9 s+ \, ^, J7 G3 ~: n6 l
z = ncread('rhum.mon.mean.nc', 'level');%z
8 F$ U2 {5 }* g, y
y = ncread('rhum.mon.mean.nc', 'lat');%y
3 \# m# w9 l9 o* s
t = ncread('rhum.mon.mean.nc', 'time');%t
! d& H$ Q7 ]( z3 x
rhum = ncread('rhum.mon.mean.nc', 'rhum');
; F. J3 u! w& C; T: x2 H3 j- i
figure; hold on;
7 a5 o8 ` \6 u( H
for i = 30:y_len
/ L4 ]; ?( \5 D6 f3 m3 u# C
for j=10:t_len
3 h$ D# \5 s( Q* a5 ^! _
[ii,jj]=meshgrid(j,i)
! |8 v3 \) }0 m* T( k/ {) _
array(i,j)=rhum(x_index,i,z_index,j);
' ^! T/ V0 p' w# }3 {* D
contour(i,j,z,[rhum(x_index,i,z_index,j)])
! v& \) F: W( d( C. x
end
! E8 j* G' b# B8 r+ L$ a3 J5 s
end
! M3 ]1 K# v l' w }% |
" N; Z) x: D) w. L* l0 D# h
错误使用 contour (line 84)
8 ?0 @6 t3 a( v
Z 的大小必须为 2x2 或更大。
6 x- c& r4 N S5 m( z# t
, `, s& G* _% n. l2 A
3 r0 g; M! K# z4 k- x+ O, x
这个contour函数里 i,j很好定义,主要这是这个rhum,也就是contour里的矩阵z,rhum现在是固定两维,两个自变量。麻烦大神指点一下如何定义这个rhum, 成为一个合适的矩阵z?非常感谢!
作者:
Colbie
时间:
2020-6-4 14:33
for i = 30:y_len
% ^" z( {0 @1 P* L- P% q
for j=10:t_len
5 N5 z4 S8 i1 w
[ii,jj]=meshgrid(j,i)
$ n: C. H0 \( Q8 T7 c+ l5 B- T6 i6 r1 Q: f; X
array(i,j)=rhum(x_index,i,z_index,j);
' _5 d+ p/ S8 S% m
contour(i,j,z,[rhum(x_index,i,z_index,j)])
0 i2 O0 v* O% j0 ]2 M5 D7 [
end
% l' {7 `+ {) v$ k2 B. z" `! \6 K
end
$ A6 X3 ]6 I" n! X3 `, `
, C9 j0 N9 t5 y+ k& s1 K: m8 O/ V
这里不对,不应在循环里面嵌套contour,因为对循环每一步而言,i和j都只有一个数值,meshgrid不能把它们展开成矩阵,而且contour(i,j,z)里面的这个z也没赋过值。
% v) }- z# [% K9 T* w0 r
举个正确用法的例子,循环每一步计算Z的一个元素,全部计算完毕后,用meshgrid把横纵坐标向量展开成矩阵,最后在循环外面用contour绘图
( x$ s, @; i, ?; O* |3 A2 N& P
draw_x = 1:1/4:7;
2 X" S$ R. W( Y( T- w/ c# p
draw_y = 2:1/3:6;
p; a' @& O' W& {/ n Q: L& U8 Z
f = @(x,y) x.^(exp( -y.^2/50 ));
( z4 b6 }9 s" a- J2 u% {
for ii = 1:1:numel(draw_x)
3 m# |! m6 t) ~* W/ G& G1 x
for jj = 1:1:numel(draw_y)
% Y; |; Z7 f0 n' i4 ?
Z(jj,ii) = f(draw_x(ii),draw_y(jj));
. O8 I$ |* Z- D* }. }+ Y
end
% z2 t0 \0 w; C# [7 u3 C E$ W2 t
end
* s5 c \. ^9 k* s
[draw_x,draw_y] = meshgrid(draw_x,draw_y);
9 V4 A8 G# x' ]: } C. s
contour (draw_x,draw_y,Z);
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2