matlab绘制正弦孔衍射图样

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

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答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零基础入门路径规划城市遍历机器人路径等问题课程中的 求一元二元函数的最小值和零点小节, 巩固相关知识点

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