📄 readf.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 + -