1. eval用法示例:
    string = ['subplot(81',num2str(i),')']; eval(string);
    eval(['string1','string2','string3'])

  2. 绘图时设定时程时间:time = 0:1/sf:(length(signal)-1)/sf;

  3. 矩阵非零元素改1,用于深度学习创建训练data,单损伤时设定标签:a为某矩阵,a(find(a))=1;

  4. 去掉图例的边框:legend('boxoff')

  5. 和第3点类似,删掉零段或者近似零段,都是用find函数:M(find(M<3))=[];
    M<3可改成M==0之类的

  6. 提取字符串中的数字:
    regexp(str,'\d*\.?\d*','match')
    可以返回str中的所有数字,依次储存在细胞数组(元胞数组)中。
    注意,读取cell数组,需要用大括号比如cell{1},如果用小括号读取出来的不是内容而是一个小cell数组。

  7. 设置符号函数并给其赋值:

    1. 使用subs:

      syms x  
      m=1;
      f= 1/x + m;
              
      dx=[2:1:5];
      y=double(subs(f,x,dx));
      

      注意,如果直接使用y=subs(f,d,dx)的话,那么在某些情况(比如f表达式有些复杂),输出的y就是一个sym数组,每一项都是sym(比如y(1)=12+1),需要改变其类型,才能输出数值。
      dx=[2:1:5];也可以使用dx=linspace(2,5,4);表示从2到4一共划分出4个数值,包括首尾的2和5。

    2. 使用@匿名函数:

      m=1;
      f=@(x) 1/x + m;
              
      dx=[2:1:5];
      for i=1:length(dx)
          y(i)=f(dx);
      end
      

      需要注意的是,使用匿名函数的话,那么就无法像subs一样可以直接赋值一个数组给符号函数,使得输出仍是一个对应的数组值。匿名函数就和一个真正的.m文件脚本函数一样。

  8. 使用滤波器的时候(比如巴特沃斯滤波器),如果输出NaN,往往是滤波器阶数太大,降低一下阶数即可。