注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

阿英汇总的常用matlab绘图2D/3D Demo  

2013-03-02 17:01:09|  分类: 编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 #1: Graphing 


% first, get matrix X of rows x, matrix Y of columns y

x = [-2:.2:2]; % xmin:xstep:xmax

y = [-2:.2:2]; % ditto for y

[X,Y] = meshgrid(x,y);

% now define the matrix of z values over the meshgrid

% for the function x*exp(-r^2) for example

Z = X.*exp(-X.^2-Y.^2);

% and now choose 4 styles of plot

% contour(X,Y,Z,20)

contour3(X,Y,Z,20)

% mesh(X,Y,Z)

% surf(X,Y,Z)

% in last three cases, may add a section like this

hold on

plot3(X(10,:), Y(10,:), Z(10,:))

hold off


#2: Taylor series 

syms x % define a symbolic variable

f = sin(x);

t = taylor(f,4); % taylor series at x = 0 degree <= 2

xd = -3:0.1:3; yd = subs(f,x,xd);

ezplot(t, [-3,3]); % plot the taylor polynomial

hold on;

plot(xd, yd, 'r-.'); % add plot of sine function


#3: Plot the curve (image) of a path (parametric curve) in 3D 

t = linspace(1, 4*pi, 201); % vector of lattice points

plot3(cos(t), sin(t), t)


#4: vectorfields in plane

u = inline('4*x.^3 - 2*x', 'x', 'y')

v = inline('2*y', 'x', 'y')

x = linspace(-1,1,11);

y = linspace(-1,1,11);

[X,Y] = meshgrid(x,y);

U = u(X,Y); V = v(X,Y);

quiver(X,Y,U,V)

axis image


5#: vectorfields in 3D

[X,Y] = meshgrid(0:.4:2);

U = -X/2;

V = Y/2;

W = 1 + 0*X;

for z = [-1, 0, 1]

      Z = z + 0*X;

      quiver3(X,Y,Z,U,V,W)

      hold on

end

axis image


6#: 3D vectorfield plot

u = inline('1 + 0*x', 'x', 'y', 'z')

v = inline('x + y.^2', 'x', 'y', 'z')

w = inline('z', 'x', 'y', 'z')

x = linspace(-2,3,6);

y = linspace(-1,2,6);

[X,Y] = meshgrid(x,y);

for z = -1:.4:1

    Z = z+0*X;

    U = u(X,Y,Z);

    V = v(X,Y,Z);

    W = w(X,Y,Z);

    quiver3(X,Y,Z,U,V,W)

    hold on

end


7#: 3D vectorfield plot for 6#, but no loop

u = inline('1 + 0*x', 'x', 'y', 'z')

v = inline('x + y.^2', 'x', 'y', 'z')

w = inline('z', 'x', 'y', 'z')

x = linspace(-2,3,6);

y = linspace(-1,2,6);

z = linspace(-1,1,4);

[X,Y,Z] = meshgrid(x,y,z);

U = u(X,Y,Z);

V = v(X,Y,Z);

W = w(X,Y,Z);

quiver3(X,Y,Z,U,V,W)



8# Matlab 2维直方图 Rose函数, 0~2*pi内的数据大小视为角度,数据个数视为距离, 落在某一角度范围内的数据越多, 则距离离远点越远

x=random('unif', 0 , 2*pi, 1, 50); % 限定产生的随机数的范围为 [0, 2*pi]

rose(x)


9# 复数绘图 feather将每一个资料点视复数,并以箭号画出,compass和feather很接近,只是每个箭号的起点都在圆点。

feather函数就是将compass函数从0度处剪开,然后铺平后的结果


theta=linspace(0, 2*pi, 20);

x = cos(theta);

y = sin(theta);

z =x +i*y;

feather(z);

figure; feather(x, y); % x是复数z的实部



10# 如果已知资料的误差量,就可用errorbar来表示。下例以单位标准差来做资料的误差量

x = linspace(0,2*pi,30);

y = sin(x);

e = std(y)*ones(size(x));

errorbar(x,y,e)



11# 若要产生极座标图形,可用polar: 

theta=linspace(0, 2*pi);

r=cos(4*theta);

polar(theta, r);


12# meshc同时画出网状图与等高线: 

[x,y,z]=peaks;

meshc(x,y,z);

axis([-inf inf -inf inf -inf inf]);


13# surfc同时画出曲面图与等高线: 

[x,y,z]=peaks;

surfc(x,y,z);

axis([-inf inf -inf inf -inf inf]);


14# contour3画出曲面在三度空间中的等高线: 

contour3(peaks, 20);

axis([-inf inf -inf inf -inf inf]);

contour画出曲面等高线在XY平面的投影: 

contour(peaks, 20);


15# plot3可画出三度空间中的曲线

t=linspace(0, 10*pi, 501);

plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);


  评论这张
 
阅读(713)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016