FSEEK错误在运行Matlab函数
21 Ansichten(30天)的
Altere Kommentare anzeigen
我得到这个错误在运行在Matlab函数
“错误使用fseek无效的文件标识符。使用fopen来生成一个有效的文件标识符。”
整个命令的功能是:
函数[global_mean_vec, global_var_vec total_fr_no] = global_mean_var_for_hmm_skips_1gau (traininglist_filename、model_filename_old model_filename_new)
如果输入参数个数= = 0
traininglist_filename =“training_list.mat”;
model_filename_old =“hmm_with_skips.mat”;
model_filename_new =“hmm_with_skips_new.mat”;
结束;
负载(model_filename_old“mean_vec_i_m”,“var_vec_i_m”,“a_i_j_m”);
负载(traininglist_filename“列表”);
[暗淡,N, MODEL_NO] =大小(mean_vec_i_m);
%分配平均向量的模型
vector_sum = 0(暗,1);
vector_squared_sum = 0(暗,1);
total_fr_no = 0;
utterance_no =大小(列表,1);
为k = 1: utterance_no
文件名列表= {k, 2};
m = {k, 1}列表;%词ID
fid = fopen(文件名,“r”);
fseek (fid, 12日“转炉”);%跳过由HTK头
c =从文件中读(fid检测器,“浮”,“b”);
文件关闭(fid);
fr_no =长度(c) /暗淡;
c =重塑(c,昏暗,fr_no);
total_fr_no = total_fr_no + fr_no;
vector_sum = vector_sum + (c, 2)总和;
vector_squared_sum = vector_squared_sum + (c, c。* 2)总和;
结束% k = 1: utterance_no
global_mean_vec = vector_sum / total_fr_no;
global_var_vec = vector_squared_sum / total_fr_no——global_mean_vec。* global_mean_vec;
%模型initilizatiion
为m = 1: MODEL_NO
为我= 2:n - 1;
mean_vec_i_m(:,我,米)= global_mean_vec;
var_vec_i_m(:,我,米)= global_var_vec;
结束
结束
保存(model_filename_new,“mean_vec_i_m”,“var_vec_i_m”,“a_i_j_m”);
流(与全球平均向量和方差%年代初始化向量\ n”,model_filename_new);
0 Kommentare
Antworten (1)
dpb
我2017年7月26日
错误文件句柄无效——说
…
fid = fopen(文件名,“r”);
fseek (fid, 12日“转炉”);%跳过由HTK头
你不检查的结果
打开外部文件
所以一个人必须假定调用失败了……所需的文件吗
慢性消耗病
或子目录中
MATLABPATH
吗?不是是一种常见的故障原因。
[支撑材、消息]= fopen(文件名,“r”);
如果fid < 0错误(消息)结束
会让你知道发生了什么,原因。