snkahaj 2023-07-24 21:49 采纳率: 25%
浏览 7

matlab绘制正弦孔衍射图样

用matlab绘制一个sin函数的一个衍射图像,类似用光线照射圆孔得到衍射图像一样,用光线照射一个正弦函数的模型或者孔,得到他的衍射图像

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-25 09:13
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7435267
    • 你也可以参考下这篇文章:用matlab将多光谱图像显示出来,三维mat文件(8个波段)
    • 除此之外, 这篇博客: 绘制近红外光谱特征选择筛选出的变量分布图中的 用MATLAB绘制特征波长图 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      直接上代码:

      %%载入数据
          %%画近红外光谱图
          [row,lie] = size(data_re);  
          X = data_re;
          figure(1)     
          for j =1:row
              i =1:lie;
              xlabel('Wavelength/nm');
              ylabel('Abosorbance');
              title('近中红外光谱图');
              plot(i+2800,X(j,:),'y');
              hold on
          end
      %%画特征波长图
      % Y = data_re(:,NMir_index-860);
      %     for j =1:1
      %         i =1:lie;
      %         xlabel('Wavelength/nm');
      %         ylabel('Abosorbance');
      %         title('近中红外光谱图');
      %         plot(NMir_index+1940,Y(j,:),'*r');
      %         hold on
      %     end
          %%变量分布区
          H_pa = patch([2834,2834,3120,3120],[-0.05,0.4,0.4,-0.05],[.6 .6 .8]);%%%特征波长所在阴影部分
          set(H_pa,'EdgeColor',[.8 .8 .8],'EdgeAlpha',0.5,'FaceAlpha',0.5)
          H_pa1 = patch([3572,3572,3878,3878],[-0.05,0.4,0.4,-0.05],[.6 .6 .8]);
          set(H_pa1,'EdgeColor',[.8 .8 .8],'EdgeAlpha',0.5,'FaceAlpha',0.5) 
          H_pa2 = patch([4150,4150,4698,4698],[-0.05,0.4,0.4,-0.05],[.6 .6 .8]);
          set(H_pa2,'EdgeColor',[.8 .8 .8],'EdgeAlpha',0.5,'FaceAlpha',0.5) 
      
      

      由于数据是正在发表的一篇论文,就不在此处展示。首先需要画出预处理之后的光谱图,在此基础上,查找特征,特征落在哪一段就在哪一段画出阴影。最后整体显示出来就是下文的图形。
      在此,需要说明一下阴影图的画法。
      网上有patch这个函数。是这么写的:patch([X down left, X top left, X top right, X down right], [Y left down, Y left up, Y rigth up, Y rigth down],[阴影颜色])。这里简单说一下patch后的第一个[]里放的是左边最低的X对应的值,左边最高的X对应的值,右边最高的对应X的值,右边最低的对应X的值。因为问我画的是矩形,所以前后两数字都相同。后面类似。
      这里分享个寻找XY值的小窍门
      先画出特征波长图,查看特征波长大致落在几个区间。查看存放特征波长值的文件,找出每个区间的最左最右面的值,即为我们画图时用的X对应的左右值。
      在这里插入图片描述

      欢迎交流!
      2021-12-6

    • 您还可以看一下 硬核野生技术咨询客服小李老师的matlab零基础入门路径规划城市遍历机器人路径等问题课程中的 求一元二元函数的最小值和零点小节, 巩固相关知识点

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 7月24日

悬赏问题

  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,
  • ¥15 centos7系统下abinit安装时make出错