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

📄 mmat_03.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/math/matrix/MMatrix/mmat_03.cc// version: $Id: mmat_03.cc,v 1.13 2002/02/27 20:54:25 alphonso Exp $//// isip include files//#include "MMatrixMethods.h"#include "MMatrix.h"#include <Console.h>// method: read//// arguments://  MMatrix<TScalar, TIntegral>& this: (output) class operand//  Sof& sof: (input) sof file object//  long tag: (input) sof object instance tag//  const String& name: (input) sof object instance name//// return: a boolean value indicating status//// this method reads the matrix object having specified name and tag// from an Sof file//template<class TScalar, class TIntegral>boolean MMatrixMethods::read(MMatrix<TScalar, TIntegral>& this_a, 			     Sof& sof_a, long tag_a, const String& name_a) {  // read the instance of the object from the Sof file - use specified  // name and tag of the object to get the instance  //  if (!sof_a.find(name_a, tag_a)) {    return false;  }    // read the actual data from the sof file  //  if (!this_a.readData(sof_a, MMatrix<ISIP_TEMPLATE_TARGET>::DEF_PARAM,		       SofParser::FULL_OBJECT,		       true, false)) {    return false;  }    // exit gracefully  //  return true;}// explicit instantiations//template booleanMMatrixMethods::read<ISIP_TEMPLATE_TARGET>(MMatrix<ISIP_TEMPLATE_TARGET>&, Sof&, long, const String&);// method: readData//// arguments://  MMatrix<TScalar, TIntegral>& this: (output) class operand//  Sof& sof: (input) sof file object//  const String& pname: (input) parameter name//  long size: (input) size in bytes of object (or full_size)//  boolean param: (input) is the parameter name in the file?//  boolean nested: (input) are we nested?//// return: a boolean value indicating status//// this method has the object read itself from an Sof file. it assumes// that the Sof file is already positioned correctly.//template<class TScalar, class TIntegral>boolean MMatrixMethods::readData(MMatrix<TScalar, TIntegral>& this_a, 				 Sof& sof_a, const String& pname_a, 				 long size_a, boolean param_a, 				 boolean nested_a) {  // declare a parser object  //  SofParser parser;  // set the debug level  //  Integral::DEBUG debug_level = Integral::NONE;  parser.setDebug(debug_level);  // release all memory currently held  //  if (!this_a.clear(Integral::RESET)) {    this_a.debug(L"this_a");        return Error::handle(name(), L"readData", Error::READ, 			 __FILE__, __LINE__, Error::WARNING);  }    // ignore implicit parameter setting  //    // configure the parser to read a nested object  //  if (nested_a) {    parser.setNest();  }    // load the parse  //  if (!parser.load(sof_a, size_a)) {    this_a.debug(L"this_a");        return Error::handle(name(), L"readData", Error::READ, 			 __FILE__, __LINE__, Error::WARNING);  }    // get the type of the matrix - for text file read the string type  //  long type_int;  if (!this_a.TYPE_MAP.readElementData(type_int, sof_a,				       MMatrix<TScalar, TIntegral>::PARAM_TYPE,       parser.getEntry(sof_a, MMatrix<TScalar, TIntegral>::PARAM_TYPE))) {    this_a.debug(L"this_a");        return Error::handle(name(), L"readData", Error::READ, __FILE__, __LINE__,			 Error::WARNING);    return false;  }  Integral::MTYPE new_type = (Integral::MTYPE)type_int;  // output some debugging information - this will be helpful for  // debugging purposes  //  if (debug_level > Integral::NONE) {    String output(L"setting MMatrix type to ");    output.concat(this_a.TYPE_MAP((long)new_type));    Console::put(output);  }  // change the type of the current matrix (matrix in which Sof file  // is being read)  //  if (!this_a.changeType(new_type)) {    this_a.debug(L"this_a");        return Error::handle(name(), L"readData", Error::READ, 			 __FILE__, __LINE__, Error::WARNING);  }      // read the number of rows  //  if (!this_a.nrows_d.readData(sof_a, MMatrix<TScalar, TIntegral>::			       PARAM_NROWS, 			       parser.getEntry(sof_a, 					       MMatrix<TScalar, TIntegral>::					       PARAM_NROWS), false, false)) {    this_a.debug(L"this_a");        Error::handle(name(), L"readData", Error::READ, __FILE__, __LINE__,		  Error::WARNING);    return false;  }        // read the number of columns  //      if (!this_a.ncols_d.readData(sof_a, MMatrix<TScalar, TIntegral>::			       PARAM_NCOLS, 			       parser.getEntry(sof_a, 					       MMatrix<TScalar, TIntegral>::					       PARAM_NCOLS), false, false)) {    this_a.debug(L"this_a");        Error::handle(name(), L"readData", Error::READ, 		  __FILE__, __LINE__, Error::WARNING);    return false;  }            // read in the vector (implicit parameter, not nested)  //  if (!this_a.m_d.readData(sof_a, MMatrix<TScalar, TIntegral>::			       PARAM_DATA, 			       parser.getEntry(sof_a, 					       MMatrix<TScalar, TIntegral>::					       PARAM_DATA), false, false)) {    this_a.debug(L"this_a");        return Error::handle(name(), L"readData", Error::READ, __FILE__,			 __LINE__, Error::WARNING);  }            // in case of sparse matrix, read the the row and column indices of  // the non-zero elements also  //  if (this_a.type_d == Integral::SPARSE) {        // read the row indices of the non-zero values of the matrix    //    if (!this_a.row_index_d.readData(sof_a, 				     MMatrix<TScalar, TIntegral>::				     PARAM_ROW_IND, 				     parser.getEntry(sof_a, 						     MMatrix<TScalar, TIntegral>::PARAM_ROW_IND), 				     false, false)) {      this_a.debug(L"this_a");            return Error::handle(name(), L"readData", Error::READ, __FILE__,			   __LINE__, Error::WARNING);    }    // read the row indices of the non-zero values of the matrix    //    if (!this_a.col_index_d.readData(sof_a, MMatrix<TScalar, TIntegral>::				     PARAM_COL_IND, 				     parser.getEntry(sof_a, 						     MMatrix<TScalar, TIntegral>::PARAM_COL_IND), 				     false, false)) {      this_a.debug(L"this_a");            return Error::handle(name(), L"readData", Error::READ, __FILE__,			   __LINE__, Error::WARNING);    }  }    // exit gracefully  //  return true;}// explicit instantiations//template booleanMMatrixMethods::readData<ISIP_TEMPLATE_TARGET>(MMatrix<ISIP_TEMPLATE_TARGET>&, Sof&, const String&, long, boolean, boolean);

⌨️ 快捷键说明

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