matlab 画一维、二维图像

本人很菜,matlab又只是一个辅助工具(仅针对本人),所以不算熟悉,在这里整理一些画图方法以及提供代码,方法很笨,还望大神指正。

matlab画函数图像

  • 不带约束条件函数图像方法
          例子函数:
        matlab 画一维、二维图像
        一维图像代码如下:
clear all;
       x=-10:0.1:10;
       z=abs(x.*sin(x)+0.1.*x);
       plot(x,z)
       xlabel('x');
       ylabel('F');
       title('函数10');
        结果如下:
matlab 画一维、二维图像
      二维图像代码如下:
clear all;
       t=-10:0.1:10;
       [x,y] =meshgrid(t);%%表示区域网格控制,目的是为了让x,y形成格点矩阵%%
       z=abs(x.*sin(x)+0.1.*x)+abs(y.*sin(y)+0.1.*y);
       surfc(x,y,z);
       %%设置三维曲面x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%%
       shading interp
       xlabel('x1');
       ylabel('x2');
       zlabel('F');
       title('????10');
       结果如下:
matlab 画一维、二维图像
  • 带约束条件的函数图像方法
           例子函数:
         matlab 画一维、二维图像
         一维图像代码如下:
clc
clear
x=-40:0.1:40;
y=x+20;
for i=1:length(x)
   if y(i)<0
       t1(i)=-160+y(i).^2;
   elseif y(i)>=0 & y(i)<=15
       t1(i)=160/15.*(y(i)-15);
   elseif y(i)>=15 & y(i)<=20
       t1(i)=200/5.*(15-y(i));
   elseif y(i)>20
       t1(i)=-200+(y(i)-20).^2;
   end
end
z=t1+200;
plot(x,z);
xlabel('x');
ylabel('F');
title('函数1');
         结果如下:
matlab 画一维、二维图像
      二维图像代码如下:
clc
clear
x=-40:0.1:40;
[x1,x2]=meshgrid(x);
y1=x+20;
y2=x+20;
for i=1:length(x1)
   if y1(i)<0
       t1(i)=-160+y1(i).^2;
   elseif y1(i)>=0 & y1(i)<=15
       t1(i)=160/15.*(y1(i)-15);
   elseif y1(i)>=15 & y1(i)<=20
       t1(i)=200/5.*(15-y1(i));
   elseif y1(i)>20
       t1(i)=-200+(y1(i)-20).^2;
   end
end
 
for i=1:length(x2)
   if y2(i)<0
       t2(i)=-160+y2(i).^2;
   elseif y2(i)>=0 & y2(i)<=15
       t2(i)=160/15.*(y2(i)-15);
   elseif y2(i)>=15 & y2(i)<=20
       t2(i)=200/5.*(15-y2(i));
   elseif y2(i)>20
       t2(i)=-200+(y2(i)-20).^2;
   end
end
 
for i=1:length(x1)
    for j=1:length(x2)
        z(i,j)=t1(i)+t2(j)+200.*2;
    end
end
surfc(x1,x2,z);
 shading interp
       xlabel('x1');
       ylabel('x2');
       zlabel('F');
       title('????1');
       结果如下:

matlab 画一维、二维图像