xiaoxiao丶 2021-10-17 00:10 采纳率: 100%
浏览 30
已结题

用matlab画函数图像,自己画的总有问题🙏🏻🙏🏻

img

img

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-10-17 10:17
    关注

    你好,这是相频特性曲线吧,给你画画,代码供参考,要点在atan2的使用上面:

    clc; clear; % 清楚工作区残余
    lambda = 0:0.01:5;%lambda赋值
    zeta = [0.05, 0.10, 0.15, 0.25, 0.375, 0.50];%zeta赋值
    zeta_text = arrayfun(@(i)num2str(zeta(i)),1:numel(zeta),'uniform',0);%zeta标记的字符串
    zeta_text{1} = ['\zeta  = ',zeta_text{1}];%zeta(1)特殊一点
    figure(1);clf; hold on;%开始画图
    f = @(lam,z) 90-atan2(1-lam.^2+(2*z*lam).^2, 2*z*lam.^3)*180/pi;%画图用的函数
    arrayfun(@(i)(plot(lambda,f(lambda,zeta(i)), 'linewidth',2)), 1:numel(zeta))%画图
    arrayfun(@(i)text(2,f(2,zeta(i)), zeta_text{i}, 'backgroundcolor','w',...
        'fontsize', 14, 'fontname','times new roman'), 1:numel(zeta))%标记zeta
    xlabel('\lambda')%标记x轴
    ylabel('\psi')%标记y轴
    set(gca, 'xtick', 0:1:5, 'xticklabel', 0:1:5)%x轴的间距
    deg = 0:60:180;
    yticks = arrayfun(@(i)[num2str(deg(i)),'°'],1:numel(deg),'uniform',0);%y轴刻度用°表示
    set(gca, 'ytick',deg , 'yticklabel', yticks)%设置y轴刻度
    set(gca, 'fontsize', 16, 'fontname','times new roman')%设置字号字体
    axis([0 5 0 180])%设置xy轴范围
    grid('on')%生成网格线
    box('on')%加上外网格
    

    效果:

    img

    答题不易,有帮助还请题主给个采纳支持一下,非常感谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 已采纳回答 10月18日
  • 创建了问题 10月17日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器