⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readf.m

📁 读取文件并导入工作环境的程序
💻 M
字号:
function [MK2,MK3]=readf(filename)

global T

%读入f0
fidin=fopen('1234');                                   % 打开1234文件              
fidout=fopen('mkmatlab.txt','w');                      % 创建MKMATLAB.txt文件 
while ~feof(fidin)                                     % 判断是否为文件末尾                
   tline=fgetl(fidin);                                 % 从文件读行    
   if double(tline(1))>=48&&double(tline(1))<=57       % 判断首字符是否是数值 
      fprintf(fidout,'%s\n\n',tline);                  % 如果是数字行,把此行数据写入文件MKMATLAB.txt 
      continue                                         % 如果是非数字继续下一次循环 
   end
end 
fclose(fidout); 
MK=importdata('MKMATLAB.txt');      % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来

%基音周期
T0=MK.data;
%对应起始时刻点
t00=MK.textdata;
t01=t00(:,1);
%得到对应时刻点矩阵
t0=str2double(t01);

MK1=cat(2,t0,T0);
MK1(16,2)=0.002993;
MK1(111,2)=0.002993;
MK1(182,2)=0.002993;
MK1(260,2)=0.002993;
MK1(294,2)=0.002993;

%得到MK2 
%第一列为时间
%第二列为基音周期
M=length(T);
N=length(t0);
MK2=ones(M,2);
MK2(:,1)=T';
for m=1:M
    a=T(1,m);
    if a <= MK1(1,1)
        dd=m;
        d=dd+1;
        MK2(m,2)=MK1(1,2);
        break;end
end
for m=d:M
    a=T(1,m);
    for n=2:N
        b=MK1(n,1);
        if a < b
            MK2(m,2)=MK1(n-1,2);
            break;
        end
    end
end
MK33=MK2(:,2).^(-1);
MK3=cat(2,T',MK33);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -