zoukankan      html  css  js  c++  java
  • Matlab编程实例(3) 函数向左或向右平移N点 左移右移

     

    %函数移动
    close all;
    clear all;
    dir=input('请输入平移方向,“1”为向左,“2”为向右');
    if dir~=1&&dir~=2;%输入控制
       error('您的输入有误!');
    end;
    step=input('请输入平移步数');
    Samp=200;  %设置信号的采样精度
    A=10;%信号幅值
    na=1;%噪声放大系数
    w=1;
    p=0;
    t = linspace(0,6*pi/w,Samp); %创建函数向量
    f=A*sin(w*t+p)+na*randn(1,Samp);%构造一个标准函数
    %函数平移
    y=rotate(f,dir,step);
    plot(t,f,'b');
    hold on;
    plot(t,y,'r');
     
     
    ///////rotate.m/////////
    function y=rotate(f,dir,step);
    %函数平移 f为目标函数 dir为平移方向 向左为1 向右为2 step为平移步数
    len=length(f);%取得f长度
    %当向左平移时
    if dir == 1 ;
     for n=0:1:step;
      temp=f(len);%将最后一个元素取出保护
       for  m=1:1:len-1%所有点向后移动一位
       f(len-m+1)=f(len-m); 
       f(1)=temp;%将最后一点放入第一点
     end
    end
    end
    %当向右平移时
    if dir == 2 ;
     for n=0:1:step;
      temp=f(1);%将最后一个元素取出保护
       for  m=2:1:len%所有点向后移动一位
       f(m-1)=f(m); 
       f(len)=temp;%将最后一点放入第一点
     end
    end
    end
    y=f;%代回
     
  • 相关阅读:
    HashMap的存储原理
    HashSet的存储原理
    ArrayList的底层实现原理
    $.getJSON()不执行回调函数
    JavaScript学习笔记(一)
    【转】日语口语简略型总结(更新中。。。)
    计算机常用符号(日文)更新中。。。
    异常
    注解
    多线程
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5332588.html
Copyright © 2011-2022 走看看