m0_73355435 2022-08-18 22:29 采纳率: 100%
浏览 85
已结题

各位能帮我看下这个吗。

img


请各位帮我看下这个,刚学matlab还是一塌糊涂。希望能帮我绘制下这个图。

  • 写回答

2条回答 默认 最新

  • 斗迷飞鸟 2022-08-18 23:53
    关注

    (1)第一个问题的解决代码

    x=-2:0.1:2; %以0.01为间隔定义x行向量
    y=cos(x/2)-sin(x)-0.5; %计算相应的y行向量
    plot(x,y,'--*b'); %绘图,"--"表示线形使用--虚线,"*"表示数据点使用星号*表示,"b"表示使用蓝色
    hold on; %开启图形叠加
    t=0:0.001:2*pi; %以0.001为间隔定义参数t行向量
    x_t=cos(t).^3; %计算相应的x行向量,".^3"表示逐点取三次方
    y_t=sin(t).^3; %计算相应的y行向量
    plot(x_t,y_t,'r'); %绘图,默认线形为实线
    grid on; %绘制网格
    xlabel('x轴'); %设置x轴标签
    ylabel('y轴'); %设置y轴标签
    title('两个函数图像'); %设置图片标题
    hold off; %关闭图形叠加
    

    (2)第一个问题的代码运行结果

    img


    (3)第二个问题的解决代码

    x_vec=-4:0.01:2; %以0.01为间隔定义x行向量
    y_vec=(-1:0.01:3)'; %以0.01为间隔定义y列向量
    x_num=length(x_vec); %记录x行向量的点数
    y_num=length(y_vec); %记录y列向量的点数
    x_mat=repmat(x_vec,y_num,1); %将x行向量沿列方向复制y_num行,变成与目标z矩阵相同规模的矩阵
    y_mat=repmat(y_vec,1,x_num); %将y列向量沿行方向复制x_num列,变成与目标z矩阵相同规模的矩阵
    z_mat=x_mat.^3-y_mat.^3+3*x_mat.^2+3*y_mat.^2-9*x_mat; %通过".^3"".^2"之类的逐点运算得到z矩阵
    [contour_mat,coutour_handle]=contour(x_vec,y_vec,z_mat,15); %调用contour函数绘制等周线
    clabel(contour_mat,coutour_handle); %调用clabel函数给等周线加上标签
    

    (4)第二个问题的代码运行结果

    img


    (5)给初学者的建议
    初学matlab的话,建议先找一本比较好的matlab教材通读(可以在京东或当当上找一本评价比较好同时自己比较喜欢的),对matlab有一个大致的映像,然后边用边学(用的过程中遇到问题就百度或在CSDN问),尤其要注意多做笔记。做笔记一来可以对matlab知识点给出自己的理解,是一个消化的过程;二来做了笔记之后,后面遇到类似的问题就可以找到相应笔记快速解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 已采纳回答 8月19日
  • 创建了问题 8月18日