亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? matrix.h

?? 攝影測量專業(yè)。實現(xiàn)單像后方交會以及立體像對的前方交會。以文件形式讀取控制點和像點坐標。
?? H
?? 第 1 頁 / 共 5 頁
字號:
    std::complex<double> cplx(1.0,2.0);
    Matrix A;
    if( !A.Copy(cplx) )
      return false;
    \endcode
    
    \return true if successful, false otherwise
    */
    bool Copy( const std::complex<double>& cplx );


  public: // Output Operations

    /**
    \brief  Saves a matrix to the specified file path (a 'c' style string)
            using a proprietary compressed format.
    \code
    Matrix A;
    A = "[1,2,3; 4,5,6; 7,8,9]";
    if( !A.Save("data.mtx" ) )
      return false;
    \endcode 

    \return true if successful, false otherwise
    */
    bool Save( const char* path );

    /**
    \brief  Saves a matrix to the specified file path (a std::string)
            using a proprietary compressed format.
            
    \code
    Matrix A;
    std::string str = "data.mtx";
    A = "[1,2,3; 4,5,6; 7,8,9]";
    if( !A.Save(str) )
      return false;
    \endcode 

    \return true if successful, false otherwise
    */
    bool Save( std::string path );
    
    /**
    \brief  Print the matrix to a file with automatically determined column width 
            and the specified precision, uses "%'blank''-'autowidth.precision'g'", to 
            the 'c' style path string provided.
    \code
    A = "[1,2,3; 4,5,6; 7,8,9]";
    if( !A.Print( "data.txt", 14 ) ) // Print the matrix to data.txt
      return false;
    \endcode   

    \return true if successful, false otherwise
    */
    bool Print( const char *path, const unsigned precision=9, bool append = false );

    /**
    \brief  Print the matrix to a file with automatically determined column width 
            and the specified precision, uses "%'blank''-'autowidth.precision'g'", to 
            the std:string path provided.
    \code
    A = "[1,2,3; 4,5,6; 7,8,9]";
    std::string str = "data.txt";
    if( !A.Print( str, 14 ) ) // Print the matrix to data.txt
      return false;
    \endcode   

    \return true if successful, false otherwise
    */
    bool Print( std::string path, const unsigned precision, bool append = false );

    /**
    \brief  Print the matrix to the standard output (stdout) with automatically 
            determined column width and the specified precision, 
            uses "%'blank''-'autowidth.precision'g'".
    \code
    Matrix A;
    A = "[1.123 0 2.123 -1; 3.123 0 4.123 -1]";  // Set A using string notation.
    bool result = A.PrintStdout(6); // Print to stdout with automatic width determination.
    // results in:
    // 0123456789012345678901234567890
    //  1.123  0  2.123 -1
    //  3.123  0  4.123 -1
    \endcode
        
    \return true if successful, false otherwise
    */
    bool PrintStdout( const unsigned precision = 6 );

    /**
    \brief  Print the matrix to a buffer of maxlength with automatically determined column width 
    and the specified precision, uses "%'blank''-'autowidth.precision'g'"

    \code
    Matrix A;
    A = "[1.123 0 2.123 -1; 3.123 0 4.123 -1]";  // Set A using string notation.
    char buffer[256]; 
    bool result = A.PrintToBuffer( buffer, 256, 6); // Print to a buffer with automatic width determination.
    cout << buffer << endl;
    // results in:
    // 0123456789012345678901234567890
    //  1.123  0  2.123 -1
    //  3.123  0  4.123 -1
    \endcode
     
    \return true if successful, false otherwise
    */
    bool PrintToBuffer( char* buffer, const unsigned maxlength, const unsigned precision );


    /**
    \brief  Print the matrix to a file with specifed width and precision
            PrintAutoWidth is recommended over this function, "%'blank''-'width.precision'g'"
            to file specified with the 'c' style path string provided.
    \code
    Matrix A;
    A = "[1.123 0 2.123 -1; 3.123 0 4.123 -1]";  // Set A using string notation.
    if( !A.PrintFixedWidth( "data.txt", 6, 3 ) )
      return false;
    // results in: data.txt with
    // 0123456789012345678901234567890
    //  1.123     0 2.123    -1
    //  3.123     0 4.123    -1
    \endcode

    \return true if successful, false otherwise
    */
    bool PrintFixedWidth( const char* path, const unsigned width, const unsigned precision, bool append = false );


    /**
    \brief  Print the matrix to a file with specifed width and precision
            PrintAutoWidth is recommended over this function, "%'blank''-'width.precision'g'"
            to file specified with the std::string path string provided.
    \code
    Matrix A;
    A = "[1.123 0 2.123 -1; 3.123 0 4.123 -1]";  // Set A using string notation.
    std::string str = "data.txt";
    if( !A.PrintFixedWidth( str, 6, 3 ) )
      return false;
    // results in: data.txt with
    // 0123456789012345678901234567890
    //  1.123     0 2.123    -1
    //  3.123     0 4.123    -1
    \endcode

    \return true if successful, false otherwise
    */   
    bool PrintFixedWidth( std::string path, const unsigned width, const unsigned precision, bool append = false );

    /**
    \brief  Print the matrix to a buffer of maxlength with specifed width and precision
            PrintAutoWidth is recommended over this function, "%'blank''-'width.precision'g'"
    \code
    Matrix A;
    A = "[1.123 2.123 -1; 3.123 4.123 -1]";  // Set A using string notation.
    char buffer[256]; 
    bool result = A.PrintFixedWidthToBuffer( buffer, 256, 10, 6 ); // Print to a buffer with fixed width.
    cout << buffer << endl;
    // results in:
    // 0123456789012345678901234567890    
    //  1.123     2.123    -1
    //  3.123     4.123    -1
    \endcode
      
    \return true if successful, false otherwise
    */
    bool PrintFixedWidthToBuffer( char* buffer, const unsigned maxlength, const unsigned width, const unsigned precision );

    /**
    \brief  Print the matrix to a file path specified by the 'c' style string 
            with specifed precision and delimiter.
    \code
    Matrix A;
    A = "[1.123 2.123 -1; 3.123 4.123 -1]";  // Set A using string notation.
    if( !A.PrintDelimited( "data.csv", 5, ',' ) )
      return false;
    // results in: data.csv with
    // 0123456789012345678901234567890    
    // 1.123,2.123,-1
    // 3.123,4.123,-1
    \endcode

    \return true if successful, false otherwise
    */
    bool PrintDelimited( const char *path, const unsigned precision, const char delimiter, bool append = false );

    /**
    \brief  Print the matrix to a file path specified by the std::string 
            with specifed precision and delimiter.
    \code
    Matrix A;
    A = "[1.123 2.123 -1; 3.123 4.123 -1]";  // Set A using string notation.
    std::string str = "data.csv";
    if( !A.PrintDelimited( str, 5, ',' ) )
      return false;
    // results in: data.csv with
    // 0123456789012345678901234567890    
    // 1.123,2.123,-1
    // 3.123,4.123,-1
    \endcode

    \return true if successful, false otherwise
    */
    bool PrintDelimited( std::string path, const unsigned precision, const char delimiter, bool append = false );
    
    /**
    \brief  Print the matrix to a 'c' style string buffer of maxlength with specifed precision and delimiter.
    
    \code
    Matrix A;
    A = "[1.123 2.123; 3.123 4.123]";  // Set A using string notation.
    char buffer[256]; 
    if( !A.PrintDelimitedToBuffer( buffer, 256, 6, ',' ) ) // Print to a buffer using comma delimiters.
      return false;
    cout << buffer << endl;
    // results in:
    // 1.123,2.123
    // 3.123,4.123
    \endcode
      
    \return true if successful, false otherwise
    */
    bool PrintDelimitedToBuffer( char *buffer, const unsigned maxlength, const unsigned precision, const char delimiter );

    /**
    \brief  Print a row to a 'c' style string buffer.
    
    \code
    Matrix A;
    A = "[1.123 2.123; 3.123 4.123]";  // Set A using string notation.
    char buffer[256]; 
    if( !A.PrintRowToString( 1, buffer, 256, 4, 6 ) ) // Print the second row to the char buffer.
      return false;
    cout << buffer << endl;
    // results in:
    // 3.123   4.123
    \endcode
    
    \return true if successful, false otherwise
    */
    bool PrintRowToString( const unsigned row, char *buffer, const unsigned maxlength, const int width, const int precision );


  public: // Change the dimensions of the matrix

    /**  
    \brief  Remove a single column from the matrix.

    \code
    Matrix A;
    A = "[1.123 0 2.123; 3.123 0 4.123]";  // Set A using string notation.
    if( !A.RemoveColumn(1) ) // Remove the column with the zeros
      return false;
    // results in 
    // A
    // 1.123 2.123
    // 3.123 4.123
    \endcode
        
    \return true if successful, false otherwise.  
    */
    bool RemoveColumn( const unsigned col );

    /**
    \brief  Remove all the columns 'after' the column index given.

    \code
    Matrix A;
    A = "[1.123 0 2.123; 3.123 0 4.123]";  // Set A using string notation.
    if( !A.RemoveColumnsAfterIndex(0) ) // Remove the 2nd and 3rd columns, i.e. after the 0th column.
      return false;
    // results in 
    // A
    // 1.123
    // 3.123
    \endcode
    
    \return true if successful, false otherwise.  
    */
    bool RemoveColumnsAfterIndex( const unsigned col );

    /** 
    \brief  Remove the rows and columns specified by the indices in the rows[] and cols[] arrays.
    
    \code
    Matrix A(4,4);
    unsigned rows[2];
    unsigned cols[2];
    rows[0] = 0; // remove row 0
    rows[1] = 2; // remove row 2
    cols[0] = 0; // remove column 0
    cols[1] = 2; // romve column 2
    A.RemoveRowsAndColumns( 2, (unsigned int *)rows, 2, (unsigned int *)cols );
    // A is now a 2x2 matrix
    \endcode
    
    \return true if successful, false otherwise.  
    */
    bool RemoveRowsAndColumns( const unsigned nrows, const unsigned rows[], const unsigned ncols, const unsigned cols[] );

    /**
    \brief  Insert a column matrix into the matrix.
    
    \code
    Matrix A;
    Matrix B(2,2);
    A = "[1.123 2.123; 3.123 4.123]";  // Set A using string notation.
    if( !A.InsertColumn( B, 1, 1 ) ) // Insert second column of B into the second column a A.
      return false;
    // results in:
    // A (2x3)
    // 1.123  0   2.123
    // 3.123  0   4.123
    \endcode
    
    \return true if successful, false otherwise.  
    */
    bool InsertColumn( const Matrix &src, const unsigned dst_col, const unsigned src_col );

    /** 
    \brief  Add a column to the end of the matrix.

    \code
    Matrix A;
    atrix B(2,2);
    A = "[1.123 2.123; 3.123 4.123]";  // Set A using string notation.
    if( !A.AddColumn( B, 1 ) ) // Add second column of B to A.
      return false;
    // results in:
    // A (2x3)
    // 1.123  2.123 0
    // 3.123  4.123 0
    \endcode
    
    \return true if successful, false otherwise.  
    */
    bool AddColumn( const Matrix &src, const unsigned src_col );

    /**
    \brief  Combine two matrices with the same nrows, A becomes A|B.

    \code
    Matrix A;
    atrix B(2,2);
    A = "[1.123 2.123; 3.123 4.123]";  // Set A using string notation.
    if( !A.Concatonate( B ) ) // make A = A | B
      return false;
    // results in:
    // A (2x4)
    // 1.123  2.123 0 0
    // 3.123  4.123 0 0
    \endcode

    \return true if successful, false otherwise.  
    */
    bool Concatonate( const Matrix &src );

    /**
    \brief  Redimension the matrix, original data is saved in place, new 
            data is set to zero. The default value for ncols allows 
            redimensioning as a vector.
    \code
    Matrix A(4,4);       // A is 4x4
    A[0][0] = 1;
    A[1][1] = -1;
    if( !A.Redim(2,2) )  // A is 2x2 but data values are retained.
      return false;
    // results in:
    // A (2x2)
    // 1  0
    // 0 -1

    Matrix B(10);     // B is a vector with length 10.
    B[0] = -1;
    B[1] = 1;
    if( !B.Redim(2) ) // B is a vector with length 2 but data values are retained
      return false;
    // results in:
    // B 
    // -1
    // 1
    \endcode
    
    \return true if successful, false otherwise.  
    */
    bool Redim( const unsigned nrows, const unsigned ncols=1 );

    /**
    \brief  Resize the matrix, original data is lost, new data is set to zero.
            The default value for ncols allows resizing as a vector.

    \code
    Matrix A(4,4);       // A is 4x4
    A[0][0] = 1;
    A[1][1] = -1;
    if( !A.Resize(2,2) )  // A is 2x2 and zero.
      return false;
    // results in:
    // A (2x2)
    // 0 0
    // 0 0

    Matrix B(10);     // B is a vector with length 10.
    B[0] = -1;
    B[1] = 1;
    if( !B.Resize(2) ) // B is a vector with length 2 and is zero.
      return false;
    // results in:
    // B 
    // 0
    // 0
    \endcode
            
    \return true if successful, false otherwise.  
    */
    bool Resize( const unsigned nrows, const unsigned ncols=1 );


  public: // Setting matrix values

    /**
    \brief  Set the matrix from the static 'c' style matrix indexed by mat[i*ncols + j].

    \code
    Matrix A;
    double data[4] = {1.0,2.0,3.0,4.0};
    if( !A.SetFromStaticMatrix( data, 1, 4 ) )
      return false;
    \\ results in 
    \\ A
    \\ 1.0 2.0 3.0 4.0
    if( !A.SetFromStaticMatrix( data, 2, 2 ) )
      return false;    
    \\ results in 
    \\ A
    \\ 1.0 2.0 
    \\ 3.0 4.0    
    \endcode
    
    \return true if successful, false otherwise.    
    */
    bool SetFromStaticMatrix( const double mat[], const unsigned nrows, const unsigned ncols );

    /**
    \brief  Setting the matrix values from a string matrix.
    
    There are two general possible interpretations of the string input. \n
    
    (1) Square bracket delimited matrix. e.g. \n
    
    \code
    Matrix A;
    A.SetFromMatrixString( "[1 2 3; 4 5 6]" ); // or 
    A.SetFromMatrixString( "[1, 2, 3; 4, 5, 6]" );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品欧美一区二区三区小说| 亚洲欧洲综合另类| 国产亚洲欧美日韩日本| 一区视频在线播放| 亚洲国产中文字幕在线视频综合| 同产精品九九九| 精品一区二区在线视频| 国产ts人妖一区二区| 色噜噜狠狠色综合欧洲selulu| 欧美午夜电影在线播放| 精品日韩在线观看| 日韩伦理电影网| 日本成人在线电影网| 成人精品国产一区二区4080| 欧美日韩在线亚洲一区蜜芽| 亚洲精品一区在线观看| 一区二区三区小说| 国产一区二区三区视频在线播放| 一本一道综合狠狠老| 日韩精品一区二区三区四区| 亚洲视频免费在线| 久久精品国产一区二区三区免费看 | 豆国产96在线|亚洲| 在线精品视频一区二区三四| 欧美v国产在线一区二区三区| 亚洲欧洲综合另类| 国产精品综合视频| 欧美乱妇23p| 国产精品国产三级国产aⅴ中文 | 日韩欧美在线综合网| 国产精品视频九色porn| 日韩精品亚洲专区| av一本久道久久综合久久鬼色| 在线成人av网站| 亚洲精品亚洲人成人网| 国产精品综合在线视频| 欧美巨大另类极品videosbest| 欧美激情艳妇裸体舞| 日本一区中文字幕| 欧美自拍偷拍午夜视频| 国产精品免费看片| 狠狠狠色丁香婷婷综合激情 | 免费国产亚洲视频| 色偷偷久久一区二区三区| 久久精品网站免费观看| 秋霞午夜鲁丝一区二区老狼| 在线视频国内自拍亚洲视频| 欧美精品一区视频| 日本午夜一本久久久综合| 欧美午夜一区二区三区免费大片| 国产精品福利电影一区二区三区四区| 男人的天堂久久精品| 欧美色视频一区| 一区二区三区在线观看国产| 91在线你懂得| 亚洲色图在线看| av在线这里只有精品| 亚洲国产精品t66y| 国产精品99久| 久久久久国产精品免费免费搜索| 九色综合国产一区二区三区| 欧美成人女星排行榜| 免费高清视频精品| 91麻豆精品国产自产在线| 亚洲成人av在线电影| 欧美午夜一区二区三区免费大片| 亚洲精品亚洲人成人网| 91国产丝袜在线播放| 亚洲乱码中文字幕| 欧美性猛交一区二区三区精品| 亚洲自拍偷拍麻豆| 欧美日韩中文一区| 日韩影院精彩在线| 日韩一本二本av| 麻豆国产精品视频| 2023国产精品视频| 国产成人在线网站| 国产清纯美女被跳蛋高潮一区二区久久w| 激情国产一区二区| 久久精品日产第一区二区三区高清版| 国产高清不卡二三区| 国产精品灌醉下药二区| 91婷婷韩国欧美一区二区| 亚洲精品中文在线观看| 欧美日韩视频在线第一区 | 日韩视频在线永久播放| 免费精品视频在线| 精品国产一区二区三区四区四| 韩国成人在线视频| 国产精品丝袜在线| 波多野洁衣一区| 亚洲综合999| 日韩欧美自拍偷拍| 国产精品一级片| 亚洲欧洲日本在线| 欧美性大战久久久| 伦理电影国产精品| 久久久久国产免费免费| 一本色道久久综合狠狠躁的推荐 | 3d成人h动漫网站入口| 久草在线在线精品观看| 国产无一区二区| 色吊一区二区三区| 免费精品视频最新在线| 欧美国产综合色视频| 欧美亚洲综合色| 麻豆一区二区三区| 国产精品系列在线| 欧美体内she精高潮| 久久成人免费网| 中文字幕一区二区三区av| 欧美久久久久久蜜桃| 国产在线不卡一卡二卡三卡四卡| 国产精品人妖ts系列视频 | 久久国产夜色精品鲁鲁99| 欧美国产激情二区三区| 欧美午夜影院一区| 国产精品一品二品| 亚洲高清在线精品| 久久精品亚洲国产奇米99| 欧美亚洲国产bt| 国产麻豆成人传媒免费观看| 亚洲精品乱码久久久久久黑人 | 国产高清视频一区| 亚洲自拍欧美精品| 久久精品男人的天堂| 欧美无砖砖区免费| 成人国产精品免费观看动漫| 亚洲国产精品天堂| 国产精品丝袜91| 欧美一区二区在线免费观看| 成人黄色一级视频| 久久国产精品色| 一区二区日韩电影| 国产视频不卡一区| 日韩一区二区在线播放| 91视视频在线观看入口直接观看www | av不卡在线播放| 精品一区二区三区的国产在线播放| 亚洲精品五月天| 久久久久亚洲综合| 日韩一区二区三区电影| 色综合天天综合狠狠| 国产麻豆精品视频| 首页综合国产亚洲丝袜| 亚洲特级片在线| 国产亚洲一区二区三区| 欧美一级艳片视频免费观看| 在线精品国精品国产尤物884a| 国产成人免费视频| 精品亚洲免费视频| 天堂影院一区二区| 一区二区日韩av| 亚洲三级久久久| 国产视频不卡一区| 精品国产免费久久| 欧美电影在哪看比较好| 一本色道综合亚洲| 97se亚洲国产综合自在线| 粉嫩在线一区二区三区视频| 捆绑调教一区二区三区| 婷婷综合五月天| 午夜精品久久久久久久蜜桃app| 亚洲欧洲精品成人久久奇米网| 久久久国产精华| 2024国产精品| 久久网站最新地址| 欧美成人精品3d动漫h| 日韩一二三区视频| 91精品欧美久久久久久动漫| 欧美体内she精视频| 在线免费av一区| 在线视频亚洲一区| 在线一区二区观看| 99精品在线观看视频| 波多野结衣精品在线| 99天天综合性| 色婷婷亚洲精品| 一道本成人在线| 欧美在线观看你懂的| 欧美视频精品在线观看| 91福利在线看| 欧美日韩国产精品成人| 欧美日韩中文字幕一区| 欧美日韩国产综合一区二区三区| 欧美日韩高清一区| 91麻豆精品国产91久久久久久 | 麻豆精品一区二区| 久久66热re国产| 国产精品主播直播| 国产91精品免费| www.日韩精品| 91蜜桃免费观看视频| 色欧美88888久久久久久影院| 一本在线高清不卡dvd| 欧美日韩三级视频| 欧美一区二区三区视频免费播放| 91精品国产福利在线观看| 欧美成人乱码一区二区三区| 久久久精品人体av艺术|