MATLAB工具常用函数

简介

  • MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。使用 MATLAB,可以较使用传统的编程语言(如 C、C++ 和 Fortran)更快地解决技术计算问题。

  • 应用范围:包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。MATLAB 提供了很多用于记录和分享工作成果的功能。可以将您的 MATLAB 代码与其他语言和应用程序集成,来分发您的 MATLAB 算法和应用。

  • 主要功能:

    • 此高级语言可用于技术计算

      • 此开发环境可对代码、文件和数据进行管理

      • 交互式工具可以按迭代的方式探查、设计及求解问题

      • 数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等

      • 二维和三维图形函数可用于可视化数据

      • 各种工具可用于构建自定义的图形用户界面

    • 各种函数可将基于 MATLAB 的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成。

  • 版本说明

    • 从MATLAB 4.2c开始,每个版本增加了一个建造编号;

    • 例如MATLAB7.6的建造标号是R2008a。说明MATLAB7.6与MATLAB2008a是等同的;

    • 对于建造编号,愈来愈正规化以后,每年出两个版本,例如2011a和2011b。一般来说。a是测试版,b是正式版。从出版时间上看,a是前半年出,b是后半年出。

安装工具包

  • MATLAB安装voicebox的步骤

    • 下载安装包

      • 官方主页

      • 官方下载

    • 解压voicebox.zip,将整个目录voicebox复制到MATLAB的安装目录的TOOLBOX目录下,如D:\MATLAB7\toolbox\

    • 打开Matlab,在MATLAB命令窗口中输入以下命令:

      • 将TOOLBOX下新加的voicebox工具箱加到MATLAB的搜索路径中去:

        1
        cd D:\MATLAB7\toolbox\voicebox
      • 添加voicebox工具箱的MATLAB的搜索路径也可采用如下指令:

        1
        2
        3
         >> addpath(genpath('D:\MATLAB7\toolbox\voicebox')) 
        % 或者
        >>path('D:\MATLAB7\toolbox\voicebox',path)
    • 检验是否成功设置的方法:

      • 在命令窗口中输入以下命令:which activlev.m(可以为所加工具箱的任一个M
        文件名称),如果显示正确,就说明上面的设置成功。

        1
        >> which activlev.m
      • 结果:
        D:\MATLAB7\toolbox\voicebox\activlev.m

  • 添加工具包:

    • 将下载的安装包复制matlab安装目录下面的toolbox文件夹中;

    • 打开软件;file -> setpath -> Add with subfolders;

    • 将要导入的工具箱所在的文件夹(该文件夹必须在MATLAB的toolbox文件夹中)添加;保存即可。

    • 验证:在命令行中输入改行代码:’ which [此处为该工具箱中任意一个函数]’;输出结果若不报错,则说明导入成功。

matlab调试注意点

  • 注释一段代码,使用如下方式:

    Ctrl+R     注释选定的整段代码;相当于text->Comment;
    Ctrl+T     取消注释的整段代码;相当于text->Uncomment;
    
  • 报错

    Subscripted assignment dimension mismatch.
    表示矩阵的下标不匹配,可能是给矩阵赋值的过程中没有对齐下标
    
  • 代码调试

    Ctrl+C    停止运行代码
    F5     运行代码
    
  • 乘和点乘的区别:

    a*b就是矩阵乘法
    a.*b就是a,b的对应元素相乘
    
  • MATLAB查看小波基,在命令窗口输入:

    1
    wavemngr('read',1)
  • 运行程序时,想要在在命令窗口显示程序中一个变量的值:

    • 只需要在求取这个变量时,后面不加分号,就表示将这个变量在命令行窗口中显示其值

    • 只需要在求取这个变量时,后面不加分号,就表示将这个变量在命令行窗口中显示其值

    • 例如:[easy_a,easy_p,easy_r,easy_f] = mea_badsig(easy_out)

  • 计算程序的运行时间

    • 在开头加上tic,结尾加上t=toc;t就是代码运行时间。(不用加分号)
  • 转义符:

    ''单引号
    %%字符百分比
    \\反斜杠
    \ a报警
    \ b退格
    \ f换页
    \ n新行
    \ r回车
    \ t水平制表符
    \ v垂直选项卡
    \ xN十六进制数,
    N\ N八进制数,
    
  • 代码运行计时

    1
    2
    3
    tic
    % 运行主函数代码
    toc

    之后在command window下面会显示:Elapsed time is xxx seconds.的信息

常用函数

MATLAB中一些判断函数

  • isscalar:判断A是否是标量,即一行一列的矩阵。
  • isnumeric:判断输入参数是否是数字类型(包括浮点型和整型)。
  • isnan:判断数组中的元素是否为无穷大。
  • iscell:判断给定数组是否是元胞数组。
  • isfield:判断输入是否是结构体数组的域(成员)。
  • isvector:判断是否为单行或者单列(也可以是单个元素),若是二维及以上的数据,则返回0。

    如果为真,则返回1(true,否则0(false)。

取整

  • fix(x) : 截尾取整.

    fix( [3.12 -3.12])
    结果 3 -3
    
  • floor(x):不超过x 的最大整数.(高斯取整)

    floor( [3.12 -3.12])
    结果 3 -4
    
  • ceil(x) : 大于x 的最小整数

    ceil( [3.12 -3.12])
    结果 4 -3
    
  • round(x):取最近的整数,相当于四舍五入取整

    round([3.12 -3.12])
    结果 3 -3
    

取余数

  • rem(n,m)mod(n,m)

    • mod 模数求余

    • rem 求余数

求平方根

sqrt(a)

取FFT变换:

1
Y = fft(S,N); %做FFT变换,S为信号的序列,N变换的点数

取均值 :

  • mean函数的作用主要是求列或行的平均数:

% 下面参数说明:A是矩阵、函数原型:mean(A , dim),若dim缺省,则默认dim=1,求列平均

  • 对列求平均数:mean(A , 1) = mean(A) % dim = 1可以简写

  • 对行求平均数:mean(A , 2)

  • mean2():相当于对整一个矩阵求像素平均值:相当于mean( mean( A ) )

标准偏差函数std

  • s = std(X)

    此处X是一个矢量,该函数返回标准偏差(注意其分母为n-1,而不是n) 。结果s是一个X各样本偏差无偏估计的平方根(X包含独立的、同分布样本)。如果X是一个矩阵,该函数返回一个行矢量,它包含了X每列元素的标准偏差。

  • s =std(X,flag)

    若flag = 0,该函数与std(X)相同;若flag = 1, std(X,1) 返回的标准偏差其分母为n而不是n-1。

  • s = std(X,flag,dim)

    该函数计算沿着dim指定的维度计算标准偏差。

求一维曲线以下面积

1
area = polyarea(1:length(x),x);       %求曲线以下的面积

反转

  • fliplr(x):将时间序列x反转,使得x的顺序与原来的完全相反。

矩阵

  • 空矩阵定义: a=[ ];

  • 矩阵的初始化:

    • zeros(m,n) 产生m*n的全0矩阵

    • ones(m,n) 产生m*n的全1矩阵

    • rand(m,n) 产生均匀分布的随机矩阵,元素取值范围:0.0-1.0

    • randn(m,n) 产生正态分布的随机矩阵

    • magic(N) 产生N阶魔方矩阵(矩阵的行、列和对角线上元素的和相等)

    • eye(m,n) 产生m*n的单位矩阵

  • 矩阵的合并:

    • 按行合并(即行数相同):用将要合并的矩阵放在中括号中,以空格或者逗号隔开

    • 按列合并(即列数相同):用将要合并的矩阵放在中括号中,以分号隔开

  • 获得矩阵行数或列数的函数如下:

    • ndims(A): 返回A的维数

    • size(A): 返回A各个维的最大元素个数

    • length(A): 返回max(size(A))

    • [m,n]=size(A): 如果A是二维数组,返回行数和列数

    • size(A,1): 返回矩阵的行数

    • size(A,2): 返回矩阵的列数

    • nnz(A): 返回A中非0元素的个数

  • 对矩阵行和列的操作
    (A,2)表示对行操作,(A,1)表示对列操作

    求行和列的操作示例

  • matlab中求矩阵的平方和:sumsqr函数

    • nnz(A): 返回A中非0元素的个数
  • matlab中求矩阵的平方和:sumsqr函数

  • 矩阵转置函数,transpose 函数,示例:A = transpose(B);

  • 通过复制小矩阵得到较大的矩阵:repmat函数

    1
    2
    3
    4
    5
    6
    % 语法:
    B = repmat(A,M,N)
    % 示例,初始是2*2的矩阵
    A = [1,3;4,2]
    B = repmat(A,1,3)
    % 得到的结果,生成2*6的矩阵 B = [1,3,1,3,1,3;4,2,4,2,4,2]
  • 矩阵数据叠加求和——accumarray

    1
    2
    3
    4
    5
    6
    A = accumarray(subs,val,sz,fun,fillval)	
    sub:提供累计信息的指示向量,指示的是计算值在生成矩阵A中的位置,同时指示的是val中需要累加值的位置。
    val:提供累计数值的向量
    sz:控制输出向量A的size
    fun:用于计算累计后向量的函数,默认为@sum,即累加
    fillval:填补A中的空缺项,默认为0

    理解:首先,函数根据参数中sz(若无,根据subs最大的值确定维度),生成一个维度为sz的中间矩阵B,然后函数根据subs中的指示,将val中的数值摆放到B中,对于同一个位置的值进行fun的运算(默认为求和),对于空去的位置填0,最后B计算后得到矩阵A。计算示例

    参考:accumarray

  • 返回位置信息min函数,输入为一个矩阵,则反馈回来的是每列的最小值和对应的位置。

    1
    [minx, ind] = min(x);

求距离

  • 求欧氏距离
    1
    2
    3
    4
    5
       b = sqrt(norm(A-B)^2);
    或:
    for i = 1: 4 % 数组的长度
    dist_temp(i) = sqrt(sum((A(i)-B(i)).*(A(i)-B(i)))); %欧氏距离的函数。
    end

判断元素与数组的从属关系

1
2
3
sum(ismember(a,X))          % 如果a在数组X中,则返回为1,否则返回0
a = (ismember(m:n,indzer)); % 返回的是一个元素为0或1的一个数组,对应每个元素是否在数组中
all(ismember(indmax(1):indmin(1),indzer)); % 对判断的结果做或运算

两个集合(数组)的运算

  • 取交集

    1
    [c, ia, ib] = intersect(A, B);   %这个函数是c返回A B的交集,ia,ib返回的是交集所在数组的指标(索引)

    比如A=[2 3 4]; B=[3]; 则[c, ia, ib] = intersect(A, B);得到 c=[3] c在数组A的指标为ia=2 同理 c在数组B的指标为ib=1。

  • 取差集

    1
    2
    3
    4
    c=setxor(A,B);   % 取两个集合交集的非(异或),c返回A与B的异或,即属于A且不属于B的元素和属于B且不属于A的元素。
    setdiff(A,B); % 这个的意思就是A里面有的元素,而B里面没有,没有的数据顺序:从大到小(重复的数据不重复出现)
    [c ia]= setdiff(A,B); % ia 的意思是 A里面的第几个元素B里面没有 这里面值得注意的是:如果A里面相同的元素B里面都没有 那么就显示最后一次的出现位置
    [C,ia] = setdiff(A,B,'rows'); %这里是第几行不同,C表示出不同行的各个数,ia写出第几行是不同(而且特别注意的地方也是和上面那个一样)
> [参考文档](https://wenku.baidu.com/view/9adcff6f10a6f524ccbf85ab.html)

求序列的自相关和互相关。

  • c = xcorr(x,y) 返回矢量长度为2*N-1互相关函数序列,其中x和y的矢量长度均为N,如果x和y的长度不一样,则在短的序列后补零直到两者长度相等。

  • 求取代码

    1
    2
    c = xcorr(x)  %为矢量x的自相关估计。
    c = xcorr(x,y,'option') %为有正规化选项的互相关计算;
  • 其他相关函数

    • “biased”为有偏的互相关函数估计;
    • “unbiased”为无偏的互相关函数估计;
    • “coeff”为0延时的正规化序列的自相关计算;
    • “none”为原始的互相关计算。

      在Matalb中,求解xcorr的过程事实上是利用Fourier变换中的卷积定理进行的。

  • 相关程度与相关函数的之间的联系

    • 在概率论和统计学中,相关(Correlation,或称相关系数或关联系数),显示两个随机变量之间线性关系的强度和方向。在统计学中,相关的意义是用来衡量两个变量相对于其相互独立的距离。最常用的是皮尔逊积矩相关系数。其定义是两个变量协方差除以两个变量的标准差(方差的平方根)。
    • 在概率论和统计学中,相关(Correlation,或称相关系数或关联系数),显示两个随机变量之间线性关系的强度和方向。在统计学中,相关的意义是用来衡量两个变量相对于其相互独立的距离。最常用的是皮尔逊积矩相关系数。其定义是两个变量协方差除以两个变量的标准差(方差的平方根)。
    • 相关系数只是一个比率,不是等单位量度,无什么单位名称,也不是相关的百分数,一般取小数点后两位来表示。相关系数的正负号只表示相关的方向,绝对值表示相关的程度。因为不是等单位的度量,因而不能说相关系数0.7是0.35两倍,只能说相关系数为0.7的二列变量相关程度比相关系数为0.35的二列变量相关程度更为密切和更高。也不能说相关系数从0.70到0.80与相关系数从0.30到0.40增加的程度一样大。
  • 相关系数就用命令corrcoef

    1
    2
    z = min(min(corrcoef(x1, x2)))    % 就是x1,x2之间的相关系数。
    z = abs(z); % 取绝对值

    取绝对值后,0-0.09为没有相关性,0.3-弱,0.1-0.3为弱相关,0.3-0.5为中等相关,0.5-1.0为强相关

    • 这个函数等价于:

      1
      z = sum((x1-mean(x1)).*(x2-mean(x2)))/(sqrt(sum((x1-mean(x1)).^2)*sum((x2-mean(x2)).^2)));

产生随机数

  • linspace(x1,x2,N)

  • 功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、中止值、元素个数。若缺省N,默认点数为100。在matlab的命令窗口下输入help linspace或者doc linspace可以获得该函数的帮助信息。

  • 例一,在matlab的命令窗口输入:

    1
    X=linspace(1,100)
  • 将产生从1到100步长为1的数组。类似于在命令窗口中输入:

    1
    X=[1:1:100];
  • 随机打乱一个数字序列

    1
    2
    y = randperm(n);	%y是把1到n这些数随机打乱得到的一个数字序列。
    rowrank = randperm(size(A, 1)); % 随机打乱矩阵的行数

用户输入

  • 在代码运行过程中,需要用户手动输入某个变量的值通过input函数来实现。
1
2
3
格式:A=input(提示信息,选项);
例如:
input_value = input ('请输入初始特征集个数m:');

MATLAB求峭度

  • 函数法:
1
2
x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32];
y=kurtosis(x) %峭度
  • 公式法:
1
2
3
4
5
6
a=mean(x);
b=(x-a).*(x-a).*(x-a).*(x-a);
f=sum(b);
c=f/32;
e=std(x,1).*std(x,1).*std(x,1).*std(x,1);
d=c/e %峭度

实验证明,两种方式获取的结果是相等的  

利用feedforwardnet函数创建神经网络

1
2
3
4
5
6
7
8
9
10
11
hide_ele_num = 2*rowNum+1;% 隐藏层神经元个数
%% 建网
net = feedforwardnet(hide_ele_num,'traingdm'); % traingdm为训练函数的设置,此处表示动量梯度下降算法
%% 训练参数设置
net.trainParam.epochs = 10000; % 最多训练多少次,默认为1000
net.trainParam.goal = 0.001; % 训练到什么程度才算成功
net.trainParam.lr=0.01; %学习率设置,应设置为较少值,太大虽然会在开始加快收敛速度,但临近最佳点时,会产生动荡,而致使无法收敛
net.layers{1}.transferFcn = 'tansig'; % 第一层网络的传递函数设置为S函数
net.layers{2}.transferFcn = 'purelin';
%% 开始训练
[net,tr] = train(net,v,p);

Logsig 传递函数为S型的对数函数。

  • 调用格式为: A=logsig(N)

    • N:Q个S维的输入列向量;
    • A:函数返回值,位于区间(0,1) 中
  • 波形

logsig

画图

  • plot画图

    1
    plot(x,y); %x y 为相应点集
    1
    plot(x,y1,x,y2); % 在一个窗口下绘制多条曲线之方法一
    1
    2
    3
    4
    hold on  %在一个窗口下绘制多条曲线之方法二
    plot(x,y1);
    plot(x,y2);
    hold off
  • plot后的相关设置

    1
    2
    3
    4
    5
    6
    7
    set(gca,'yscale','log'); %画对数坐标的,将y轴的尺度设置为对数,如果要设置横坐标,改为“xscale”即可.
    axis([0 N -2 2]); %设置x,y轴的取值范围,前面两个是x轴的,后面两个是y轴的
    xlabel('x_axis_name'); %设置x y轴名称
    ylabel('x_axis_name');
    title('name'); %设置图名称
    legend('曲线1','曲线2'); %加图例(就是加了线型后,右上角的注释)
    grid on; %加网格
  • 线型和颜色

    • 线型(线方式): - 实线 :点线 -. 虚点线 - - 波折线
    • 线型(点方式):. 圆点 +加号 * 星号 x x形 o 小圆
    • 线条粗细:plot(x,y,’r’,’linewidth’,4);
    • 参数为数据点的形状:’.’为实心黑点;’*‘为八线符;’<’为左三角;’d’为菱形;’o’为空心圆圈;’s’为方块符;’+’为十字符号;’^’为上三角符;’>’为右三角符;’h’为六角星;’p’为五角星;’x’为叉字符。
    • 颜色: r红; g绿; b蓝; c青 m紫; k黑; w白;y黄;
    • 例子:

      1
      plot(x,y1,’b:+’,x,y2,’g-.*’);
  • 加图例legend

    1
    legend(字符串1,字符串2,字符串3,…,参数);  %其中字符串为画图顺序依次标注
    • 参数说明如下:
参数字符串含 义
0尽量不与数据冲突,自动放置在最佳位置
1放置在图形的右上角
2放置在图形的左上角
3放置在图形的左下角
4放置在图形的右下角
-1图形窗外
  • 设置背景色

    1
    2
    3
    set(gcf,'color','none'); %无背景
    set(gcf,'color',[0,0,0]); %背景色为黑
    set(gcf,'color',[1,1,1]); %背景色为白
  • subplot

    • 功能:分割figure,创建子坐标系
    • 语法

      1
      2
      3
      4
      5
      6
      7
      8
      figure
      h = subplot(m,n,p) or subplot(mnp)
      subplot(m,n,p,'replace')
      subplot(m,n,P)
      subplot(h)
      subplot('Position',[left bottom width height])
      subplot(..., prop1, value1, prop2, value2, ...)
      h = subplot(...)
    • 描述:h = subplot(m,n,p)或者subplot(mnp)将figure划分为m×n块,在第p块创建坐标系,并返回它的句柄。当m,n,p<10时,可以简化为subplot(mnp)或者subplot mnp

      (注:subplot(m,n,p)或者subplot(mnp)此函数最常用:subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果第一个数字是2就是表示2行图。p是指你现在要把曲线画到figure中哪个图上,最后一个如果是1表示是从左到右第一个位置。 ),参考博客。

    • 示例:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      figure
      subplot(2,2,1)
      plot(s,'k')
      ylabel('signal')

      subplot(2,2,,2)
      plot(imp(1,:),'k')
      ylabel('imf1')

      subplot(2,2,,3)
      plot(imp(2,:),'k')
      ylabel('imf2')

      subplot(2,2,,4)
      plot(imp(3,:),'k')
      ylabel('imf3')

matlab文件操作

wavread读取音频文件

  • 示例代码
    1
    2
    3
    4
    5
    6
    filedir = [];			% 设置路径
    filename = 'bluesky3.wav'; % 设置文件名
    fle = [filedir filename];
    [x,fs] = wavread(fle); % 读入数据文件
    x = x(2000:4048,:);
    % 采用上面的方法得到的

在matlab R2015a版本中运行wavread()函数,出现警告:Warning: WAVREAD will be removed in a future release. Use AUDIOREAD instead.

audioread读取音频文件

  • 语法

    1
    2
    3
    4
    5
    [y,Fs] = audioread(filename) % 从名为 filename 的文件中读取数据,并返回样本数据 y 以及该数据的采样率 Fs。

    [y,Fs] = audioread(filename,samples) % 读取文件中所选范围的音频样本,其中 samples 是 [start,finish] 格式的向量。

    [y,Fs] = audioread(___,dataType) % 返回数据范围内与 dataType('native' 或 'double')对应的采样数据,可以包含先前语法中的任何输入参数
  • 示例:

    1
    2
    [x,fs] = audioread('data\a001_0_10.wav');
    [M,N] = size(x);
  • 局限性

    • 对于 Windows 7 或更高版本和 Linux 平台上的 MP3、MPEG-4 AAC 和 AVI 音频文件,audioread 读取的样本数量可能比预期的少。在 Windows 7 平台上,这是由于基础 Media Foundation 框架所致。在 Linux 平台上,这是由于基础 GStreamer 框架的局限性所致。如果需要精确的样本读取,请使用 WAV 或 FLAC 文件。
    • 在 Linux 平台上,audioread 读取包含用作立体声数据的单通道数据的 MPEG-4 AAC 文件

audioread在 R2012b 中推出。

参考:matlab文档(里面包括matlab比较系统的介绍)

将数组数据存入txt文件

  • 自定义一维数组的数据转存txt函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    %% 将数据写入txt文件
    function save2txt(arr, path)
    % 一维数组的数据存入到path路径对应的txt文件
    fid=fopen(path,'wt'); %新建文件,你要保存到的文件路径,该路径的最后为'\变量名.txt'路径,该路径的最后为'\变量名.txt'

    for i=1:length(arr)
    fprintf(fid,'%g ',arr(i)'); %一行一行的写入数据,以空格隔开,到该行的最后一个数据,回车
    end
    fclose(fid);
    end
  • 自定义二维数组的数据转存txt函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function save2txt_2dim(arr, path)
    % 将二维数组arr保存到txt文件中,并以空格隔开
    fid=fopen(path,'wt'); %新建文件,你要保存到的文件路径,该路径的最后为'\变量名.txt'路径,该路径的最后为'\变量名.txt'

    for i=1:length(arr(:,1))
    for j = 1:length(arr(1,:))
    fprintf(fid,'%g ',arr(i,j)'); %一行一行的写入数据,以空格隔开,到该行的最后一个数据,回车
    end
    end
    fclose(fid);
    end

批量操作文件夹中的文件

  • 读取文件夹里所有的音频文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    root_path = 'D:\py_code\second_py\ASC\datasets\TUT-urban-acoustic-scenes-2018-development\audio';	% 此处可以写相对路径

    fileFolder=fullfile(root_path); % 文件夹名audio,此处将相对路径转为绝对路径
    dirOutput=dir(fullfile(fileFolder,'*')); %如果存在不同类型的文件,用‘*’读取所有,如果读取特定类型文件,'.'加上文件类型,例如用‘.wav’,但是在实验时,改为'.wav'发现这种方法不可行
    fileNames={dirOutput.name}';
    % 读取文件,取文件名:fileNames{i}
    for i=3:length(fileNames)
    [x,fs] = audioread([root_path,'\' , fileNames{i}]);
    end

    存在的一个问题是发现fileNames前两个分别是‘.’‘..’,从第3个开始才是文件夹下面的文件名,这个在实际的使用中可以设置断点查看fileNames的值。

  • 加载文件中所有的txt文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    root_path = 'testdata';

    fileFolder=fullfile(root_path); %文件夹名的全局地址
    dirOutput=dir(fullfile(fileFolder,'*')); %如果存在不同类型的文件,用‘*’读取所有
    fileNames={dirOutput.name}';

    feature = [];

    for i = 3:length(fileNames)
    path = ['testdata\', fileNames{i}];
    temp = load(path);
    feature = [feature; temp];
    end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机快照

虚拟机快照 虚拟机的删除和迁移 虚拟机的克隆

这些人,建议你不要去贷款了

贷款是好事&#xff0c;但是贷款还不上就不是好事了&#xff0c;在实际的贷款中&#xff0c;有很多人贷款都是没有目的性&#xff0c;纯粹是为了获取贷款而贷款&#xff0c;如果你是下面这些人&#xff0c;建议不要去贷款了。第一种人&#xff0c;贷款投机的人所谓投机就是为了…

特征选择方法

概述特征选择在模式识别领域中扮演着一个极其重要的角色。 一方面&#xff0c;在样本有限的情况下&#xff0c;用大量特征来设计分类器无论是从计算开销还是从分类器性能来看都不合时宜&#xff1b; 另一方面&#xff0c;特征和分类器性能之间并不存在线性关系&#xff0c;当特…

安装vmtools

安装vmtools Ubuntu 16.04 下安装VMware Tools(三行命令搞定&#xff0c;亲测好使)&#xff1a; 第一行命令&#xff1a;sudo apt-get upgrate 第二行命令&#xff1a;sudo apt-get install open-vm-tools-desktop -y 第三行命令&#xff1a;sudo rebootcd /opt/ 表示进入到op…

空间谱专题02:波束形成(Beamforming)

作者&#xff1a;桂。 时间&#xff1a;2017-08-22 10:56:45 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7410846.html 前言 本文主要记录常见的波束形成问题&#xff0c;可以说空间谱估计是波束形成基础上发展而来&#xff0c;在系统论述空间谱之前&#xff0c;有…

常见的矩阵形式

作者&#xff1a;桂。 时间&#xff1a;2017-08-22 12:30:33 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7411043.html 前言 记录经常用到的矩阵形式。 A-正交矩阵 定义&#xff1a;一实的正方矩阵Q∈Rnxn&#xff0c;称为正交矩阵&#xff0c;若&#xff1a; B-酉…

空间谱专题03:时空特性与采样定理

作者&#xff1a;桂。 时间&#xff1a;2017-08-27 08:07:30 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7439558.html 一、一阶无模糊特性 可结合时域、空域对偶性一文来理解。 在DOA ambiguity vs. array configuration for subspace-based DF method 一文&…

远程登录到Linux服务器

远程登录到Linux服务器 要求能够Ping通 第一步&#xff1a; 两边就可以互换文件了&#xff01;

采样定理

作者&#xff1a;桂。 时间&#xff1a;2017-08-28 19:09:42 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7445454.html 原文链接&#xff1a;http://pan.baidu.com/s/1nvFopuD 一、Nyquist采样定理 对于一个频带限制在&#xff08;0&#xff0c;fh&#xff09;的连…

信号分析中一些特征量

时域均值 有效值&#xff08;RMS&#xff0c;对时间的均值&#xff1a;&#xff09; 时域峰值 方差 协方差 短时能量 短时过零率 子频带能量比 频域概要&#xff1a;信号频谱是在频率域对原信号分布情况的描述&#xff0c;能够提供比时域波形更加直观的特征信息。频谱分析是机械…

时域、空域对偶性

厚着脸皮要在同事公众号上写篇文章&#xff0c;尽量浅显、与专业相关&#xff0c;选了这个主题。 一、时域与空域特性 以远场模型&#xff08;平面波&#xff09;为例&#xff0c;假设均匀线阵接收的为窄带信号&#xff0c;假设相邻振元间隔为d&#xff0c;入射角为&#xff1a…

开机重启,用户登录注销

开机重启&#xff0c;用户登录注销 用户管理 查询用户信息 用户组 在Linux下没有消息就是成功了&#xff08;没有消息就是好消息&#xff09;&#xff01; 用户和组相关文件

DCASE挑战赛原始提案文件(详细信息)

本文是根据DCASE2013挑战赛的提案文件&#xff0c;加上个人的理解做了相应的翻译&#xff0c;可能有不对的地方&#xff0c;在之后的会慢慢改善。 背景在过去的十年里&#xff0c;人们对在代码公布和公共评估中提出方法的语音和音频处理社区的兴趣越来越浓厚。公共评估可以作为…

文件目录类

文件目录类 enter表示查看下一行&#xff1b;空格键表示查看下一页

Detection and Classification of Acoustic Scenes and Events(DCASE2013详细介绍)

在DCASE 2013官网上&#xff0c;了解到在本篇文章中&#xff0c;详细描述了DCASE2013挑战赛的结果。下面加上个人的理解做了相应的翻译&#xff0c;可能有不对的地方&#xff0c;在之后的会慢慢改善。 摘要对于智能系统来说&#xff0c;使用音频形态是最好的&#xff0c;重点在…

时间日期类和搜索查找类

时间日期类 搜索查找类

SG仿真常用模块

workspace交互配合gateway in/out&#xff0c;实现信号仿真与workspace的互联。 滤波器可与FDATool同时使用&#xff0c;直接关联FDATool的参数&#xff0c;而不必输入FDATool的滤波器系数。 也可调用Workspace中的变量&#xff0c;假设滤波器系数设计并量化后&#xff0c;为My…

DCASE三次挑战赛概览

资料来源&#xff1a;http://www.cs.tut.fi/sgn/arg/dcase2017/dcase 所有对环境声音分类和检测方面感兴趣或研究工作的研究人员都应邀通过DCASE社区与同行分享想法、问题和意见。 这个研究领域正在迅速发展&#xff0c;在国际信号处理会议&#xff08;如ICASSP或EUSIPCO&#…