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' );
        结果如下:

      二维图像代码如下:
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' );
       结果如下:

  • 带约束条件的函数图像方法
           例子函数:
         
         一维图像代码如下:
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' );
         结果如下:

      二维图像代码如下:
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' );
       结果如下:



  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值