使用来自两个不同的txt文件的矩阵进行的操作

时间:2017-04-16 22:49:08

标签: c++ matrix

美好的一天:)我想制作一个程序(在Visual C ++中),它使用两个不同文件中的两个矩阵执行多个不同的操作。到目前为止我完成了这个。

typedef unsigned int uint;
class matrix {
private:
    uint nrows, ncol;
    float **elements;
public:
    matrix(const char*);
    void printmatrix(const char*);
};

#include "matrix.h"
#include <iostream>
#include <fstream>
#include <iomanip>

matrix::matrix(const char*file) {
    ifstream fcin(file, ios::in);
    if (!fcin) {
        cerr << "\nError: the file doesnt exist\n";
        exit(EXIT_FAILURE);
    }
    fcin >> nrows;
    fcin >> ncol;
    elements = new float*[nrows];
    for (uint i = 0; i < nrows; i++) {
        elements[i] = new float[ncol];
        for (uint j = 0; j < ncol; j++)
            fcin >> elements[i][j];
    }

    fcin.close();
}

void matrix::printmatrix(const char*file) {
    ofstream fcout(file, ios::out);
    if (!fcout) {
        cerr << "\nError: file doesnt exist\n";
        exit(EXIT_FAILURE);
    }
    fcout << nrows;
    fcout << "\n";
    fcout << ncol;
    fcout << "\n";
    for (uint i = 0; i < nrows; i++) {
        for (uint j = 0; j < ncol; j++)
            fcout << setw(6) << elements[i][j];
        fcout << "\n";
    }
    fcout.close();
};

#include "matrix.h"
#include <cstdlib>

int main()
{
    matrix A("matrix1.txt");
    A.imprimir("matrix2.txt");
    system("PAUSE");
    return 0;
}

我开始使用随机生成的矩阵执行程序,并使用重载运算符执行运算(加法,减法,乘法);并且还操作“逆矩阵”和“乘以标量”。但是,当处理来自两个不同文本文件的矩阵时,我很复杂:\我有很多疑问,从两个不同文本文件的矩阵的运算符重载原型是什么?

当我为随机生成的矩阵求和时,我做到了这一点:

matrix* operator+ (const matrix&matrix2){
        matrix*sum=new matriz(nrow, ncol);
        for (uint i=0; i<nrows; i++){
            for (uint j=0; j<ncol; j++){
            sum->elements[i][j]=elements[i][j]+matrix2.elements[i][j];
            }
        }
        return sum;
    }

同样地,我已经完成了上面提到的操作并且运行良好。但是,我不知道如何使用从两个不同文本文件中获取的矩阵进行操作(带有开销)。你能帮我吗? :)对不起,如果我的问题根本不清楚,我来自拉丁美洲,我的英语不好

0 个答案:

没有答案