Matlab绘图知识总结与技巧分享‌

Matlab绘图总结

会找时间录个视频讲一下的。

注:这里面的内容都是各大网站里面的大佬写的,我只是ctrl+c/v了之后,稍作修改了一下。

1 二维图

clear;

x1 = 0:0.01:20;         %普通折线图

y1_1 = sin(x1);

y1_2 = 2*cos(x1);

subplot(3,3,1);plot(x1,y1_1); % y=sin x

hold on;

plot(x1,y1_2);

 

syms t1;                  %参数方程定义的图

f1 = @(t1)t1.*sin(t1);

f2 = @(t1)t1.*cos(t1);

subplot(3,3,2);fplot(f1,f2);  % (x=tsint,y=tcost)

 

x2 = 1:0.1:10000;            %X轴对数坐标图

y2 = 20*log10(2*x2)

subplot(3,3,3);semilogx(x2,y2);  % y=20lg(2x)

 

theta = 0:0.01:2*pi;      %极坐标图

rho = sin(2*theta).*cos(2*theta);

subplot(3,3,4);polar(theta,rho); % y=sin2x * cos2x

 

x3 = [2018,2019,2020]    %柱状图

y3 = [30,20,30,40,50;

   40,20,20,40,50;

   10,80,60,40,90];

subplot(3,3,5);bar(x3,y3);

 

y4 = randn(10000,1);   %频率分布直方图

x4 = -4:0.2:4;

subplot(3,3,6);hist(y4,x4); % y为生成的随机数,x为区间

 

score = [10,25,3,18,41];  %饼图

ex = [0,0,1,0,1];

subplot(3,3,7);pie(score,ex);

 

x5 = [0 10 20 25 30 40 50];   %散点图

y5 = [7.5 -17.5 20 7.5 20 -17.5 7.5];

subplot(3,3,8);scatter(x5,y5);

 

x6 =  [0:0.01:20];               %双Y坐标图

y6_1 = 200*exp(-0.05*x6).*sin(x6);

y6_2 = 0.8*exp(-0.5*x6).*sin(10*x6);

subplot(3,3,9);plotyy(x6,y6_1,x6,y6_2);

2 三维图

t1 = [0:0.1:10*pi];          %三维螺旋线

 x1 = sin(t1)+t1.*cos(t1);

 y1 = cos(t1)-t1.*sin(t1);

 z1 = t1;

 subplot(3,3,1);plot3(x1,y1,z1); 

 grid on;

 

 [x,y]=meshgrid(0:0.1:2,1:0.1:3);

 z=(x-1).^2+(y-2).^2-1;

 subplot(3,3,2);meshc(x,y,z);  %带等高线的三维网格曲面函数

 subplot(3,3,3);meshz(x,y,z);  %带底座的三维网格曲面函数

 subplot(3,3,4);surfc(x,y,z);  %具有等高线的曲面函数

 subplot(3,3,5);surfl(x,y,z);  %具有光照效果的曲面函数

 

 [x,y] = meshgrid(0:0.1:2,1:0.1:3);

 z =(x-1).^2+(y-2).^2-1;

 subplot(3,3,6); mesh(x,y,z);

 subplot(3,3,7); mesh(x,y,z);view(0,90);

 subplot(3,3,8); mesh(x,y,z);view(90,0);

 subplot(3,3,9); mesh(x,y,z);view(-45,-60); %view(方位角,仰角)

3 基础绘图指令

1.h = figure 用句柄控制图形参数

在命令窗口可显示句柄对应的图形具有的所有属性。之所以将这个放在第一条,是因为它的内涵几乎包含了所有matlab绘图的选项,掌握难度较大,需要不断尝试。

一、图形对象

MATLAB图形对象包括:

MATLAB每一个具体图形一定包括计算机屏幕和图形窗口两个对象。

1、定义     MATLAB在创建每一个图形对象时,都会给该对象分配一个唯一确定的值,称其为图形对象句柄。 PS:(1)计算机屏幕句柄默认为0

(2)图形窗口对象的句柄值为一正整数,并显示在窗口标题栏中

(3)其他图形对象的句柄为浮点数

2、获取已有对象的句柄

3、一个demo close all;clear all;clc;

%% 图形对象及其句柄

x1=linspace(0,2*pi,30);%首尾为0和2*pi,中间有30个数

y1=sin(x1);

h0=plot(x1,y1,'r'); %曲线对象的句柄

h1=gcf;%图形对象的句柄

h2=gca;%坐标轴句柄

h3=findobj(gca,'Marker','x');%坐标轴上曲线的句柄,Marker表示标记点的形状

运行结果如下:

(二)图形对象属性

一、属性名与属性值 属性名:每种对象的每个属性都规定好了名字,一般为其英文单词,一般要用单撇号括起来。 属性值:每种属性名的取值。 二、属性的操作 1、set函数

创建对象时,需要配置各个属性,否则将会以缺省值进行创建。

(1)调用格式:

set(句柄,属性名1,属性值1,属性名2,属性值2,……)

%其中句柄指明要操作的对象

%set中的属性可以全部缺省

(2)一个demo:

x=0:pi/10:2*pi;

h=plot(x,sin(x));

set(h,'Color','b','LineStyle',':','Marker','p');

2、get函数

我们还可以通过get得到属性值,再进行改变。 (1)调用格式:

V=get(句柄,属性名)

%V是返回的属性值

%如果省略属性名,则返回句柄的所有属性值。

(2)一个demo: x=linspace(0.2*pi,20);

y=sin(x);

h=plot(x,y);

col=get(h,'Color');                %得到曲线的颜色

V=get(0,'ScreenSize');         %得到当前窗口的平屏幕分辨率

三、对象的公共属性 1、Children属性:     取值是该对象所有子对象的句柄组成的一个向量。 2、Parent属性:     取值是该对象父对象的句柄。 3、Tag属性:     取值是一个字符串,作为对象的一个标识符(别名) 4、Type属性:     表示该对象的类型(显然是不可以改变的) 5、UserData属性:     该属性的取值是一个矩阵,缺省值为空矩阵。一般将一个图形对象有关的比较重要的数据储存在这个属性中,借此达到传送数据的作用。 一般做法:先用set函数给某一句柄添加一些附加数据(一个矩阵),如果想使用这样的矩阵,再用get调用出来。 6、Visible属性:     取值是on(缺省值)或off。决定是否显示在屏幕上。但是不显示不代表不存在。 7、ButtonDownFcn属性:     取值是一个字符串,一般是某个M文件名或一段MATLAB程序。图形对象巨鼎了一个作用区域,当单击该区域时,MATLAB自动执行该程序段。 8、CreatFcn属性:     取值是一个字符串,一般是某个M文件名或一段MATLAB程序。当创建该对象时自动自行该程序段(同构造函数) 9、DeleteFcn属性:     取值是一个字符串,一般是某个M文件名或一段MATLAB程序。当取消该对象时自动自行该程序段(同析构函数)

一个demo:

close all;clear all;clc;

%% 图形对象属性

x2=0:pi/50:2*pi;

y2=sin(x2);

z2=cos(x2);

plot(x2,y2,'r',x2,z2,'g');

h2=get(gca,'Children');%获取所有曲线句柄向量h2

for k=1:size(h2)

    if get(h2(k),'Color')==[0 1 0] %【0,1,0】表示绿色

        h2g=h2(k);

    end

end

pause;

set(h2g,'LineStyle',':','Marker','p');%对绿色线条进行设置

(三)图形对象创建 一、图形窗口对象 1、定义     图形窗口是MATLAB中很重要的一类图形对象,MATLAB的一切图形图像的输出都是在图形窗口中完成的。 2、调用格式:

句柄变量=figure(属性名1,属性值1,属性名2,属性值2);

%属性名和属性值可以缺省,则命令如下

句柄变量=figure  或者  figure

 

figure(窗口句柄)       %设置为当前窗口。

                                  %如果窗口句柄写成一个整数,则可以使用这个句柄生成一个新的图形窗口,并定义为当前窗口。

 

close(窗口句柄)        %关闭图形窗口

close all;                     %关闭全部图形窗口

clf;                              %清除当前图形窗口的内容,但不关闭窗口。

3、 图形窗口对象的常用属性(除了公共属性) (1)MenuBar属性

    取值是figure(缺省值)或none,用来控制窗口是否有菜单条。     如果属性为none,那么用户可以使用uimenu函数来加入自己的菜单条。     如果属性为figure,那么窗口保持默认的菜单条,这时可以采用uimenu函数在原默认的图形窗口菜单后面添加新的菜单项。 (2)Name属性     取值是字符串,缺省值为空,作为图形串口的标题 (3)NumberTitle属性:     取值是on(缺省值)或者off。决定是否以“Figure No.n:“为标题前缀,这里n是图形窗口的序号,即句柄值。 (4)Resize属性:     取值为on(缺省值)或off。决定在窗口对象建立后可否用鼠标改变该窗口的大小 (5)Position属性 (6)Units属性:     该属性的取值可以是下列字符串的任何一种:     pixel(像素,缺省值),normalized(相对单位),inches(英寸),centimeters(厘米)和points(磅)。 (7)Color属性:     取值可以用字符表示,也可以用三元组表示。缺省值为’k’即黑色。 (8)Pointer属性:     取值是arrow(缺省值)、crosshair、watch、topl、topr、botl、botr、circle、cross、fleur、custom等。 (9)对键盘及鼠标响应属性:     允许对键盘和鼠标键按下这样的动作进行响应。

KeyPressFcn      键盘键按下响应

WindowButtonDownFcn        鼠标键按下响应

WindowButtonMotionFcn      鼠标盈动响应

WindowButtonUpFcn      鼠标键释放响应

 

4、一个demo:

x1=linspace(0,2*pi,60);

y1=sin(x1);

%KeyPressFcn键盘键按下响应

h1=figure('Color',[0,1,0],'Position',[1,1,450,250],'Name','Fuck','NumberTitle','off','MenuBar','none','KeyPressFcn','plot(x,y);axis([0,2*pi,-1,1]);');

二、坐标轴对象 1、概念     坐标轴对象是图形窗口对象的子对象,每个图形窗口中可以定义多个坐标轴对象,但只有一个坐标轴是当前坐标轴,在没有指明坐标轴,所有的图形图像都是在当前坐标轴中输出。 2、调用格式:

句柄变量=axes(属性名1,属性值1,属性名2,属性值2,……);

%调用axes函数用制动的属性在当前图形窗口创建坐标轴,并将句柄赋给句柄变量。

axes  或  句柄变量=axes

%用axes函数建立缺省坐标轴

axes(坐标轴句柄)

%调用axes函数将之设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口。

3、坐标轴的常用属性(除了公共属性) (1)Box属性:     取值是on或者off(缺省值)。它决定坐标轴是否带有边框。 (2)GridLineStyle属性:     取值是‘:’(缺省值)、‘-’、‘-.’、‘--’、‘none’。该属性定义网格线的类型 (3)Position属性:     该属性是由四个元素构成的向量,其形式为[n1,n2,n3,n4]。这个向量在图形窗口中决定一个矩形区域,坐标轴在其中。(n1,n2)是左下角的坐标,(n3,n4)是矩形的宽和高。单位由Units属性决定。 (4)Unit属性:     取值是normalized(相对单位,为缺省值)、inches(英寸)、centimeters(厘米)和points(磅)。 (5)Title属性:     该属性的取值是坐标轴标题文字对象的句柄,可以通过该属性对坐标轴标题文字对象进行操作。

demo:

ans=get(gca,'Title');

set(ans,'Color','r');

(6)XLabel、YLabel、ZLabel属性:     取值分别为x,y,z轴说明文字的句柄。其操作和Title属性相同。 demo: ans=get(gca,'XLabel');

set(ans,'String','Values of X axis');

(7)XLim、YLim、ZLim属性:     取值都是具有2个元素的数值向量。3个属性分别定义个坐标轴的上下限。缺省为[0,1]。 (8)XScale、YScale、ZScale属性:     取值都是’linear’(缺省值)或’log’,这些属性定义个坐标轴的刻度类型。 (9)View属性:     取值是两个元素的数值向量,定义视点方向。

4、一个demo: x2=linspace(0,2*pi,20);

y2=sin(x2);

figure;

%axes函数可以在同一个图形窗口上建立多个坐标轴(同时显示)

axes('Position',[0.2,0.2,0.2,0.7],'GridLineStyle','-.');%该属性是由四个元素构成的向量,其形式为[n1,n2,n3,n4]。这个向量在图形窗口中决定一个矩形区域,坐标轴在其中。

plot(y2,x2);

grid on;

axes('Position',[0.4,0.2,0.5,0.5]);

t=0:pi/100:20*pi;

x2=sin(t);

y2=cos(t);

z2=t.*sin(t).*cos(t);

plot3(x2,y2,z2);

axes('Position',[0.55,0.6,0.25,0.3]);

[x2,y2]=meshgrid(-8:0.5:8);

z2=sin(sqrt(x2.^2+y2.^2))./sqrt(x2.^2+y2.^2+eps);

mesh(x2,y2,z2);

 

三、曲线对象 1、定义     曲线对象是坐标轴的子对象,它既可以定义二维坐标系中,也可以定义在三维坐标系中 2、MATLAB调用:

句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,……);

%x,y,z为三维坐标

3、曲线对象的常用属性(除了公共属性) (1)Color属性:     该属性的取值是代表某颜色的字符或者RGB值。定义曲线的颜色。 (2)LineStyle属性:     定义线性。 (3)LineWidth属性:     定义线宽,缺省值为0.5磅。 (4)Marker属性:     定义数据点标记符号,缺省值为none。 (5)MarkerSize属性:     定义数据点标记符号的大小,缺省值为6磅。 (6)XData,YData,Zdata属性:     取值都是数值向量或矩阵,分别代表曲线对象的3个坐标轴数据。 4、一个demo:

t3=0:pi/20:2*pi;

y3=sin(t3);

y31=cos(t3);

f3=figure('Position',[30,100,800,350]);

axes('GridLineStyle','-.','XLim',[0,2*pi],'YLim',[-1,1]);%取值都是具有2个元素的数值向量,3个属性分别定义个坐标轴的上下限,缺省为[0,1]。

line('XData',t3,'YData',y3,'LineWidth',2);%XData,YData取值都是数值向量或矩阵,分别代表曲线对象的3个坐标轴数据,LineWidth定义线宽。

line(t3,y31);

grid on;

四、文字对象 1、用处:      主要用于给图形添加文字标注,可以使用LaTeX文本。 2、MATLAB调用:

句柄变量=text(x,y,z,'说明文字',属性名1,属性值1,属性名2,属性值2,……);

%说明文字可以使用LaTeX控制字符

3、文字对象的其他常用属性如下: (1)Color属性:     定义文字对象的颜色。 (2)String属性:     取值是字符串或者字符串矩阵,记录文字标注的内容。 (3)Interpreter属性:     取值是latex(缺省值)或none,该属性控制对文字标注内容的解释方式,即LaTeX方式或者ASCII方式。 (4)FontSize属性:     定义文字对象的大小,缺省值为10磅。 (5)Rotation属性:     取值是数值量,缺省值为0.定义文字对象的旋转角度。取正值是表示逆时针旋转。 4、一个demo:

x4=-pi:0.1:pi;

y41=sin(x4);

y42=cos(x4);

figure;

h4=line(x4,y41,'LineStyle',':','Color','g');

line(x4,y42,'LineStyle','--','Color','b');

xlabel('-\pi \leq \Theta \leq \pi');

ylabel('sin(\Theta)');

title('Plot of sin(\Theta)');

text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','FontSize',12);

set(h4,'Color','r','LineWidth',2);

 

五、曲面对象 1、概念:      曲面对象也是坐标轴的子对象,它定义在三维坐标系中,而坐标系可以在任何视点下。 2、调用格式:

句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性2,……);

3、曲面对象的属性: (1)EdgeColor属性:     取值是代表某颜色的字符或RGB值,还可以是flat、interp或者none。缺省为黑色。定义曲面网格线的颜色或着色方式。 (2)FaceColor属性:     取值是代表某颜色的字符或RGB值,还可以是flat(缺省值),interp或none。定义曲面网格片的颜色或着色方式。 (3)LineStyle属性:     定义曲面网格线的线型。 (4)LineWidth属性:     定义曲面网格线的线宽,缺省值为0.5磅。 (5)Marker属性:     曲面数据点标记符号,缺省值为none。 (6)MarkerSize属性:     曲面数据点标记符号的大小,缺省值为6磅。 (7)XData,YData,ZData属性:     3种属性的取值都是数值向量或矩阵,分别代表曲面对象的3个坐标轴数据。 4、一个demo:

x5=linspace(0,4*pi,100);

figure;

[x5,y5]=meshgrid(x5);

z5=sin(x5);

axes('view',[-37.5,30]);

h5=surface(x5,y5,z5,'FaceColor','w','EdgeColor','flat');

grid on;

set(get(gca,'XLabel'),'String','X-axis');      %设置x轴说明

set(get(gca,'YLabel'),'String','Y-axis');      %设置y轴说明

set(get(gca,'ZLabel'),'String','Z-axis');      %设置z轴说明

title('mesh-surf');

set(h5,'FaceColor','interp','EdgeColor','interp');

2.fileout, print 自动保存图片文件

clc,clear;

hf = figure;

sphere;

W = 5;  % 图片宽度

H = 5;  % 图片高度

set(hf,'PaperUnits','inches'); % 尺寸所用单位

set(hf,'PaperPosition',[0 0 W H]);

fileout = ['sphere1.']; % 输出文件名

print(hf,[fileout,'tif'],'-r600','-dtiff'); % 格式、分辨率

3.axis坐标轴设置

设置坐标范围 二维 axis([xmin,xmax,ymin,ymax]),

三维 axis([xmin,xmax,ymin,ymax,zmin,zmax])

常用:刻度等长axis equal,打开坐标轴axis on,去掉坐标轴axis off,坐标轴设置为正方形axis square,冻结屏幕高宽比axis vis3d

另外,用当前句柄gca控制坐标轴示例:

figure(...);

set(gca,'XLim',[3 40]);% X轴的数据显示范围

set(gca,'XTick',[-3.14,0,3.14] );% X轴的记号点

set(gca,'XTicklabel',{'-pi','0','pi'});% X轴的记号

set(gca,'XTick', []);% 清除X轴的记号点

set(gca,'XGrid','on');% X轴的网格

set(gca,'XDir','reverse');% 逆转X轴

set(gca,'XColor','red');% X轴的颜色

4.plot 线宽、标记、字体设置

Matlab绘图中用到的直线属性包括:

线形LineStyle 线宽LineWidth 颜色 Color 标记形状MarkerType 标记大小 MarkerSize

标记填充颜色MarkerFaceColor 标记边缘颜色MarkerEdgeColor

字体种类FontName 字体大小FontSize 字体粗细FontWeight

set(gca, 'lineWidth', 1.1, 'FontSize', 9, 'FontName', 'Times')   %设置坐标轴格式

5.plot 线型、标记与颜色及快速设置

线型 实线'-',双划线'--',虚线':',点划线'-.'

标记 +.ox* 正方形s 菱形d 六边形h 五角形p 上三角形^ 下三角形v 右三角形> 左三角形<

颜色 红绿蓝rgb 黄黑白ykw 青绿色c 洋红m

快速设置 在引号内可用简洁命令设置曲线属性:如'rs:',即为红色带方形标记的虚线。

相关命令 title xlabel ylabel text grid legend

x = 0:0.1:1;

y = [2./(x+1); x; x.^2; x.^3];

figure;  plot(x,y(1,:),'r.-');

hold on; plot(x,y(2,:),'go--');

hold on; plot(x,y(3,:),'b+:');

hold on; plot(x,y(4,:),'ks-.');

title('Plot of y(x)')

grid on;

set(gca,'FontSize',15); %横纵轴标注字体大小;

xlabel('x','FontSize',20,'FontWeight','bold');

ylabel('y','FontSize',20,'FontWeight','bold');

text(0.5,1,'o text on [0.5,1]');

legend('2/(x+1)','x','x^2','x^3');

6.meshgird 可用于生成坐标阵列,以绘制surf,contour等图形。

x0 = [-1:0.2:1]; y0 = [-2:0.1:2];

[x,y] = meshgrid(x0,y0);

z = x.^2+y.^2;

surf(x,y,z);

定义域为一个矩形区域的z = x.^2+y.^2

[cita,rho] = meshgrid([0:0.1:1]*2*pi,[0:0.1:1]);

x = rho.*cos(cita);    %用角度、半径定义的格点坐标

y = rho.*sin(cita); 

z = x.^2+y.^2;  

surf(x,y,z);   %在直角坐标系中绘制碗状抛物面

定义域为一个圆形区域的z = x.^2+y.^2

7.patch 创建填充颜色的多边色块;fill 函数有相似功能。

例: patch(x,y,'red'), 其中x,y为多边形顶点。

扩展应用1: 绘出函数(以函数曲线作为一条边,绘出阴影面积)

x = 0:0.1:10;

y = x.^2;

plot(x,y);

hold on; patch([x,10,0],[y,0,0],'green')

plot(x,y);

hold on; patch([x(30:end-10),x(end-10),x(30)],[y(30:end-10),0,0],[0.8,0.8,0.8])

8.示例:绘出一个表示积分的图形:

f = -10:0.01:10;

w = f*2*pi;

fl = 3; fk = 4; wl = fl*2*pi; wk = fk*2*pi;

xil = 0.8; xik = 0.9;

Hk = 1j*w.^0./(w.^2-wk^2+2j*xik*w); Hl = 1j*w.^0./(w.^2-wl^2+2j*xil*w);

fun1 = Hk.*conj(Hl);

wu = 4.5; n2 = 1000-wu/0.01;

figure;

plot(f,abs(fun1),'LineWidth',2,'Color','k')

hold on; fill([f(n2:end-n2),f(end-n2),f(n2)],[abs(fun1(n2:end-n2)),0,0],[0.8,0.8,0.8])

set(gca,'FontSize',15); %横纵轴标注字体大小;

xlabel('Frequncy','FontSize',15,'FontWeight','bold');

ylabel('H(\omega)','FontSize',15,'FontWeight','bold');

set(gca,'XTick',[-4.5,0,4.5] );% X轴的记号点

set(gca,'XTicklabel',{'-\omega_u','0','\omega_u'});% X轴的记号

set(gca,'YTick',[0]);% X轴的记号点

set(gca,'YTicklabel',{'0'});% X轴的记号

set(gca,'YLim',[0 1.1*max(abs(fun1))]);% X轴的数据显示范围

text(6,0.3*max(abs(fun1)),'I(\omega_u)','FontSize',15);

hold on; plot([4,6],[0.2*max(abs(fun1)),0.25*max(abs(fun1))],'k');

9.特殊字符操作

1. 希腊字符的输出

Matlab中进行希腊字母的输出基本代码为:\+对应英文名称,例如α代码为\alpha。而对于大写字符,则需要将对应英文名首字母大写,例如Γ代码为\Gamma。

这里需要说明几点:

  • 并不是所有的大写字母都能通过这种方式打出来(只有上表列的11个可以),个人感觉是有些大写字母和英文中大写字母看起来是一样的,可以当英文大写字母敲。
  • 字母o(omicron)无论大小写也无法根据这个方法敲出来,应该是跟英文字母长得很像。
  • 一些变体需要在字母前加上var:ϑ为\vartheta,ϖ为\varpi,ς\varsigma。

在matlab中进行输出如下图

2. 上下标输出

上标为^{上标内容},下标为_{下表内容}。

例如10-2对应的代码分别为:10^{-2},e^{-\lambda},\gamma_{FD},\lambda_{t}。

3. 字体变化

常用的为黑体\bf,斜体\it,正体\rm。

如斜体显示m/s2,代码为\itm/s^{-2}。如果需要混合显示,例如a/b中a为斜体,b为黑体,代码格式为{\ita}/{\bfb}。

4. 特殊符号

Matlab支持很多特殊符号,这里仅列举一些可能常用的特殊符号。

4 窗口操作

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空