gpt4 book ai didi

c++ - 从文件中读取数据并在 C++ 中执行矩阵乘法

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:59 28 4
gpt4 key购买 nike

我是 C++ 的新手,正在尝试执行从文件中获取数据的矩阵乘法。但我无法获得乘法部分。有人请帮我解决这个问题。

虽然我正在尝试对 2 个矩阵进行乘法运算,但无法获得输出。

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string line;
int d[3][3],e[3][3],f[3][3];
int i=0;
int x=0;
int j=0;
string a[20];
string b[20];
string c[20];
ifstream myfile;

myfile.open("numeric.txt");
while(getline (myfile,line))
{
if(line!=" ")
{
a[x]=line;
b[x]=line;
cout<<a[x]<<endl;
x++;
}
}
cout<<"first Matrix"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<=4;j++)
{
cout<<a[i][j]<<"";
}
cout<<endl;
}
cout<<"Second Matrix"<<endl;
for(i=1;i<4;i++)
{
for(j=0;j<6;j++)
{
cout<<b[i][j]<<"";
}
cout<<endl;
}
cout<<"Multiplication"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<=3;j++)
{
c[i][j]=0;
for(int k=0;k<3;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
cout<<"Multiplication Result"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<c[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

最佳答案

这是一个完整的示例,说明如何将(固定大小的)矩阵写入文件以及如何从该文件中读取来构建它们:

#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

int main() {

const size_t matrixSize = 3;

//
ofstream matrixOutput("matrix.txt");

for (size_t i = 0; i < matrixSize; i++) {
for (size_t j = 0; j < matrixSize; j++) {
matrixOutput << j*i << ' ';
}
matrixOutput << '\n';
}

for (size_t i = 0; i < matrixSize; i++) {
for (size_t j = 0; j < matrixSize; j++) {
matrixOutput << j*i * 2 << ' ';
}
matrixOutput << '\n';
}

matrixOutput.close();

//

ifstream matrixData("matrix.txt");

size_t matrixInput[matrixSize][matrixSize];
size_t matrixInput2[matrixSize][matrixSize];

size_t position = 0;
size_t number = 0;

while (matrixData >> number) {

const size_t matrixNumber = size_t(floor(position / (matrixSize*matrixSize)));
const size_t row = size_t(floor(position / matrixSize)) % matrixSize;

switch (matrixNumber) {
case 0:
matrixInput[row][position % 3] = number; break;
case 1:
matrixInput2[row][position % 3] = number; break;
}
position++;
}

matrixData.close();

cout << "Matrices: " << endl;

for (size_t i = 0; i < matrixSize; i++) {
for (size_t j = 0; j < matrixSize; j++) {
cout << matrixInput[i][j] << ' ';
}
cout << endl;
}

cout << endl;

for (size_t i = 0; i < matrixSize; i++) {
for (size_t j = 0; j < matrixSize; j++) {
cout << matrixInput2[i][j] << ' ';
}
cout << endl;
}
cout << endl;

cout << "Matrices multiplication: " << endl;

for (size_t i = 0; i < matrixSize; i++) {
for (size_t j = 0; j < matrixSize; j++) {
cout << matrixInput[i][j] * matrixInput2[i][j] << ' ';
}
cout << endl;
}
// ...
}

注意:如果您愿意,也可以将矩阵大小写入文件,以便稍后检索它并构建自定义大小矩阵。

关于c++ - 从文件中读取数据并在 C++ 中执行矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47546403/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com