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 画图 三元函数的主要内容,如果未能解决你的问题,请参考以下文章