MATLAB 初始化一个NAN矩阵

使用MATLAB初始化一个4*5的NAN矩阵:

A=zeros(4,5)*nan;%初始化一个4*5的NAN矩阵

A =

   NaN   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN   NaN
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多尺度排列熵(Multiple Scale Permutation Entropy)是一种用于短时序列分析的方法,可以用于研究信号的动态特征。下面给出一个MATLAB程序,可以计算一个矩阵中每一列的多尺度排列熵。 假设矩阵为A,每一列有n个数据点,则程序如下: ```matlab function [MPE] = mpe(A, tau, m, scales) % A:矩阵 % tau:时间延迟 % m:嵌入维数 % scales:尺度个数 [n, p] = size(A); % n为数据点个数,p为变量个数 MPE = zeros(p, scales); for i = 1:p % 对于每一列进行计算 for j = 1:scales % 对于每个尺度进行计算 L = floor(n/(j*tau)); % 计算每个尺度的区间长度 if L == 0 % 如果区间长度为0,则将MPE设置为NaN MPE(i,j) = NaN; else B = zeros(L,m); % 初始化嵌入矩阵 for k = 1:L % 对于每个区间进行计算 idx = (k-1)*j*tau + (1:m)*tau; % 计算当前区间的索引 B(k,:) = A(idx,i); % 将当前区间的数据点进行嵌入 end P = perms(1:m); % 计算1到m的全排列 num_perm = size(P,1); % 计算全排列的个数 count = zeros(num_perm,1); % 初始化计数器 for k = 1:L % 对于每个区间进行计算 for l = 1:num_perm % 对于每个全排列进行计算 temp = B(k,P(l,:)); % 将当前区间的数据点按照当前全排列进行排列 [~,idx] = sort(temp); % 计算排列后的索引 count(l) = count(l) + sum(abs(diff(idx))>0); % 计算排列熵 end end count = count/(L*(m-1)); % 将计数器除以总数,得到排列概率 MPE(i,j) = -sum(count.*log(count)); % 计算多尺度排列熵 end end end ``` 该程序会返回一个p行scales列的矩阵MPE,其中第i行第j列的元素表示第i列数据在第j个尺度下的多尺度排列熵。如果某个尺度下的区间长度为0,则该位置的多尺度排列熵会被设置为NaN

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值