30/09/2018, 21:03

Thắc mắc về một số phép cơ bản trong C++

chào mọi người, mình có một vấn đề mà chưa giai quyết được
mình có 1 vector ma trận, mình muốn nhân từng phần tử trong đó với một ma trận Q khác, đây là code mình

vector <Mat_<float>> vectorContruct(4096,Mat(8,8,CV_32FC1);
vector <Mat_<float>> vectorContruct(4096,Mat(8,8,CV_32FC1;
for (int i = 0; i < vectorContruct.size(); ++i)
    {    
        Mat temp(8,8,CV_32FC1);
        for (int k = 0; k < 8; ++k)
        {
            for (int l = 0; l < 8; ++l)
            {
                float a = vectorContruct[i].at<float>(k,l) * Q.at<float>(k,l);
                temp.at<float>(k,l) = a;
            }
        }
        cout << "M = " << endl << " " << temp << endl << endl;
        for (int m = 0; m < 8; ++m)
        {
            for (int n = 0; n < 8; ++n)
            {
                vectordequantum[i].at<float>(m,n)=temp.at<float>(m,n);
            }
        }
    }```

bằng cách như vậy, mình chỉ thu đc 1 kết qủa duy nhất cho tất cả các Mat trong vector

`Mat dequantum = 
 [-330, -66, -20, -9, 0, 0, 0, 0;
 -84, -18, 0, 0, 0, 0, 0, 0;
 -6, 0, 15, 0, 24, 0, 0, 0;
 -6, 0, 0, 0, 0, 0, 0, 0;
 -8, 0, 0, 0, 0, 0, 0, 0;
 0, 0, 0, 0, 0, 0, 0, 0;
 0, 0, 0, 0, 0, 0, 0, 0;
 0, 0, 0, 0, 0, 0, 0, 0]`

Mong mọi người chỉ giaos cho mình, mình cũng thử với push_back mà vấn thế

Bài liên quan
0