matlab 画图 三元函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 画图 三元函数相关的知识,希望对你有一定的参考价值。

|x|+|y|+|z|=1这个图形用matlab怎么画呢?(最好有程序)
谢谢啦!!!!!!

首先考虑了用隐函数生成图像,函数如下

>> ezsurf('(abs(x)+abs(y)-1).*((abs(x)+abs(y))<1)',[-1 1 -1 1 ])

>> hold on

>> ezsurf('-(abs(x)+abs(y)-1).*((abs(x)+abs(y))<1)',[-1 1 -1 1 ])

>> axis equal

>> view(-30,10);

>> 

图片如图所示,不过存在一个没法解决的问题,就是显示范围,这个隐函数在

[-1 1 -1 1]整个范围内都能算出值,虽然在我把xy超出范围的值都置0了,不过0也能画出来。

想了半天也想不出来怎么把筛选矩阵abs(x)+abs(y))<1的0都变成NaN,因为不能直接一个语句就表达出来。

画这个东西还有个方法,就是用patch,这个函数是能画出一系列的多边形,你可以直接用这个函数画8个三角形出来。 

用patch的方法我写了一个m函数,很简单

function point

p=[1 0 0;0 -1 0;-1 0 0;0 1 0;0 0 1 ;0 0 -1];

v=[1 2 6;1 4 6;2 3 6;3 4 6;1 2 5;1 4 5;2 3 5;3 4 5];

clf;

patch('faces',v,'vertices',p,'facevertexcdata',jet(8),'facecolor','flat');

axis equal;

axis([-1 1 -1 1 -1 1]);

grid on;

view(-20,10);

参考技术A 这明显是一个曲面方程
所以二三楼的plot用错了
至少应该用surf
不过我们可以分析该式子的几何意义:
在空间中某一点到原点O的距离R的5次方即:[(R^2)^2.5]
等于该点的z坐标的3次方,z>0有意义
R^5=Z^3
应该想象得到该曲面应该是一个z为轴的旋转曲面
可以得到旋转母线的方程
r=sqrt(z^(3/5)-z^2);
%%%%%%%%%%%%%%%%%%%%
z=0:0.1:10;
r=sqrt(z.^.(3./5)-z.^2);
然后用cylinder函数一部搞定
具体的参数写法查一下help,因为我很久没用这个函数了
%%%%%%%%%%%%%%%%%%%%%
>>z=0:0.1:10;
>>r=sqrt(z.^(3/5)-z.^2);
>>[x,y,z]=cylinder(r);
>>surf(x,y,z)
>>axis([-11-110.1])
参考技术B

%定义函数f(x,y,z)=|x|+|y|+|z|-1

f=@(x,y,z)abs(x)+abs(y)+abs(z)-1;

%生成网格

t=linspace(-1,1,25);

[x,y,z]=meshgrid(t,t,t);

v=f(x,y,z);

%用isosurface绘制隐函数

h=isosurface(x,y,z,v,0);

p=patch(h);

set(p,'facevertexcdata',jet(size(h.vertices,1)),'edgecolor','flat','facecolor','w');

view(3);axis equal

参考技术C 这是二元函数 参考技术D   先用meshgrid形成XYZ三轴的矩阵,然后用slice(X,Y,Z,A,B,C)ABC分表表示XYZ所且的横截面,只要切的细一点,看起来就是个完整的图,比如ABC都取1:0.01:2,就表示数据从1到2,步长0.01切一个横截面,这么多面放在一起就是一个完整的图;
  参考如下:
  [K,H,E] = meshgrid(-1:.25:1,2:-.25:0,5:1:30);
  v = K.*exp(-K.^2-H.^2-E.^2);
  xslice = [1];
  yslice = [ ];
  zslice = [5,20];
  hx=slice(K,H,E,v,xslice,yslice,zslice);
  set(hx,'FaceColor','interp','EdgeColor','none')
  %colormap hsv;
  %shading interp;
  xlabel('K');
  ylabel('H');
  zlabel('E');
  %grid off
  whitebg('w')

MATLAB中的绘图函数有那几种颜色呀?

MATLAB中的绘图函数有下列基本颜色:

红色——"red"

绿色——"green"

蓝色——"blue"

青色——"cyan"

洋红色——"magenta"

黄色——"yellow"

黑色——"black"

白色——"white"

如需要其他颜色,可以用调色板进行调整 RGB 三元组。如RGB 三元组 [0.8500 0.3250 0.0980]

参考技术A 你说plot么?颜色无限的,可以根据RGB数值进行线的颜色规定
plot(x,y,'Color',[0.63,0.13,0.94],'LineWidth',1.5);
上图中方括号里的就是RGB数值
参考技术B

plot函数代表不同颜色的标示符一共有八种:y:黄色;k:黑色;w:白色;b:蓝色;g:绿色**;r:红色;c:亮青色;m:锰紫色;

二维绘图函数

扩展资料

不同线上画不同颜色简单易用的函数。Matlab-code

Examples demonstrating thecolors.

% LINECOLORS 

N=6; 

X =linspace(0,pi*3,1000); 

Y =bsxfun(@(x,n)sin(x+2*n*pi/N), X.',1:N); 

C =linspecer(N); 

axes('NextPlot','replacechildren','ColorOrder',C); 

plot(X,Y,'linewidth',5) 

ylim([-1.1 1.1]);

% SIMPLER LINE COLOREXAMPLE 

N = 6; X =linspace(0,pi*3,1000); 

C =linspecer(N) 

holdoff; 

forii=1:N 

Y =sin(X+2*ii*pi/N); 

plot(X,Y,'color',C(ii,:),'linewidth',3); 

hold on; 

end

% COLORMAPEXAMPLE 

A =rand(15); 

figure; imagesc(A); % defaultcolormap 

figure; imagesc(A);colormap(linspecer); % linspecer colormap

参考资料:

百度百科——MATLAB

以上是关于matlab 画图 三元函数的主要内容,如果未能解决你的问题,请参考以下文章

Matlab画怎么画这个二元函数图像

Matlab随笔之画图函数总结

MATLAB画图怎么平滑?

MATLAB学习1 之画图函数

matlab画图如何清除图中的一部分

MATLAB画图surf函数颜色控制参数c用法