Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?
Qt 6.11 is out! See what's new in the release blog

QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?

Scheduled Pinned Locked Moved Unsolved General and Desktop
18 Posts 4 Posters 2.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jsulmJ jsulm

    @opengpu But what is it? A struct/class? A number? Or something like QVariant?

    O Offline
    O Offline
    opengpu
    wrote on last edited by opengpu
    #9

    @jsulm
    https://docs.microsoft.com/en-us/windows/desktop/winauto/variant-structure

    jsulmJ 1 Reply Last reply
    0
    • O opengpu

      @jsulm
      https://docs.microsoft.com/en-us/windows/desktop/winauto/variant-structure

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #10

      @opengpu Why do you want to put VARIANT in a matrix? Do you want to do matrix based calculations? Maybe a two dimensional QVector would be enough?

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      O 1 Reply Last reply
      1
      • jsulmJ jsulm

        @opengpu Why do you want to put VARIANT in a matrix? Do you want to do matrix based calculations? Maybe a two dimensional QVector would be enough?

        O Offline
        O Offline
        opengpu
        wrote on last edited by
        #11

        @jsulm said in QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?:

        dimensional QVector

        dimensional QVector?
        yes, i just want to get the Var besed on row&column

        jsulmJ JKSHJ 2 Replies Last reply
        0
        • O opengpu

          @jsulm said in QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?:

          dimensional QVector

          dimensional QVector?
          yes, i just want to get the Var besed on row&column

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by jsulm
          #12

          @opengpu

          QVector<QVector<VARIANT>> _2dArray;
          

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          2
          • O opengpu

            @jsulm said in QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?:

            dimensional QVector

            dimensional QVector?
            yes, i just want to get the Var besed on row&column

            JKSHJ Offline
            JKSHJ Offline
            JKSH
            Moderators
            wrote on last edited by
            #13

            @opengpu said in QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?:

            yes, i just want to get the Var besed on row&column

            I agree with @jsulm -- you should use QVector<QVector<T>>.

            QGenericMatrix and the old QMatrix are designed to be used as transformation matrices: https://en.wikipedia.org/wiki/Transformation_matrix. They are not designed to hold row+column data.

            Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

            1 Reply Last reply
            2
            • O Offline
              O Offline
              opengpu
              wrote on last edited by
              #14

              @jsulm said in QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?:

              QVector<QVector<VARIANT>> _2dArray;

              _2dArray[iRow][iCol] = 1.0f; //this is ok
              but how should i set the presice size of _2dArray?
              _2dArray.resize(rowCount * colCount); //this is not correct, right?

              jsulmJ 1 Reply Last reply
              0
              • O opengpu

                @jsulm said in QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?:

                QVector<QVector<VARIANT>> _2dArray;

                _2dArray[iRow][iCol] = 1.0f; //this is ok
                but how should i set the presice size of _2dArray?
                _2dArray.resize(rowCount * colCount); //this is not correct, right?

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #15

                @opengpu said in QGenericMatrix? why not QMatrix a template? is there anything like boost::numeric::ublas::matrix<AAA>?:

                _2dArray.resize(rowCount * colCount); //this is not correct, right?

                No, it isn't

                _2dArray.resize(rowCount);
                // And now for each row
                _2dArray[row].resize(colCount);
                

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                1
                • O Offline
                  O Offline
                  opengpu
                  wrote on last edited by opengpu
                  #16
                  This post is deleted!
                  1 Reply Last reply
                  0
                  • O Offline
                    O Offline
                    opengpu
                    wrote on last edited by
                    #17

                    this is right

                    _2dArray.resize(rowCount);
                    for (int i = 0; i <_2dArray.size(); ++i)
                    {
                    _2dArray[i].resize(colCount);
                    }

                    1 Reply Last reply
                    0
                    • VRoninV Offline
                      VRoninV Offline
                      VRonin
                      wrote on last edited by
                      #18

                      If you need a 2d container for type T with fixed dimensions and having all rows with the same number of columns you should use boost::multi_array<T,2>.
                      QVector<QVector<T>> is fine but it's more flexible than you need and hence less efficient. I would stick with the good old boost:

                      boost::multi_array<VARIANT,2> _2dArray(boost::extents[rowCount][colCount]);

                      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                      ~Napoleon Bonaparte

                      On a crusade to banish setIndexWidget() from the holy land of Qt

                      1 Reply Last reply
                      2

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved