## Question types: Matrix question

qtype_matrix
Maintained by Laurent Opprecht, Nicolas Dunand
Matrix question type.
618 sites
18 fans
Current versions available: 2

Matrix question type. Adds support for k' grading as well as a streamlined user interface.

This question type allows the teacher to define the rows and columns that make up a matrix. Students can select either multiple or single answers per row, depending on how the question has been configured. Each row receives a grade defined by one of the grading methods. The final grade for the question is an average of their grades for each of the rows.

### Contributors

Nicolas Dunand: Developper

### Awards

• Sat, Apr 7, 2018, 5:54 AM
Does not work in the mobile app!!!
• Mon, Apr 23, 2018, 7:48 PM
Hello Nicolas,

will there be a 3.4 Version of your plugin?

Best regards
Sebastian
• Tue, Apr 24, 2018, 12:29 PM
Hi Sebastian,

No 3.4 version planned, but please do report if not fully compatible with Moodle 3.4.
• Wed, May 23, 2018, 5:44 PM
Hi, first of all thank you very much for your plugin.
I would just like to point out that from the 21st line, it is no longer possible to record the answers. I am on a moodle in 3.4.
Good continuation
• Wed, May 23, 2018, 7:48 PM
Hi, thanks for your feedback. Yes, this is a hard-coded limit to prevent exponential complexity growth of answer processing.
• Sun, Sep 16, 2018, 5:16 AM
Hello!
The question type does not work in the mobile app
• Mon, Nov 5, 2018, 5:33 PM
Hi thanks for this question type. It works usually fine. If I like to make more columns are not well visible on the right side in edit mode.

• Tue, Jan 15, 2019, 5:16 PM

the plugin is not compatible with version 3.6.1
• Thu, Jan 17, 2019, 2:04 AM
I already had version 3.0 and when I downloaded the latest version of moodle 3.6 the plugin was not compatible knowing that I have a lot of exercise that contains this type of question, it displays the following error:

Debug info: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'rows
INNER JOIN mdl_question_matrix ' at line 4
SELECT weights.*
FROM mdl_question_matrix_weights AS weights
WHERE
rowid IN (SELECT rows.id FROM mdl_question_matrix_rows AS rows
INNER JOIN mdl_question_matrix AS matrix ON rows.matrixid = matrix.id
WHERE matrix.questionid = 454)
OR

colid IN (SELECT cols.id FROM mdl_question_matrix_cols AS cols
INNER JOIN mdl_question_matrix AS matrix ON cols.matrixid = matrix.id
WHERE matrix.questionid = 454)

[array (
)]
Stack trace:

line 486 of /lib/dml/moodle_database.php: dml_read_exception thrown
line 1245 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
line 286 of /question/type/matrix/libs/question_matrix_store.php: call to mysqli_native_moodle_database->get_records_sql()
line 145 of /question/type/matrix/questiontype.php: call to question_matrix_store->get_matrix_weights_by_question_id()
line 106 of /question/type/matrix/questiontype.php: call to qtype_matrix::retrieve_matrix()
line 931 of /lib/questionlib.php: call to qtype_matrix->get_question_options()
line 1000 of /lib/questionlib.php: call to _tidy_question()
line 164 of /mod/quiz/attemptlib.php: call to get_question_options()
line 169 of /mod/quiz/locallib.php: call to quiz->load_questions()
line 2403 of /mod/quiz/locallib.php: call to quiz_start_new_attempt()
line 111 of /mod/quiz/startattempt.php: call to quiz_prepare_and_start_new_attempt()

• Thu, Jan 17, 2019, 7:07 AM
Hi,
I work with 3.4, since last update of the qtype_matrix plugin, i experience some troubles, as no Matrix/Kprime Kprime can be read, and i get the folowing message " Erreur de programmation détectée. Ceci doit être corrigé par un programmeur : This behaviour (interactivecountback) cannot work with this question (qtype_missingtype_question)"
Is that a known error ?
Thanks
• Thu, Jan 17, 2019, 3:09 PM
Issam,
This is an incompatibility with MariaDB, which has been fixed in today's release: 3.5.2 for Moodle 2.7-3.6 (Build: 2018050702)
• Thu, Jan 17, 2019, 3:12 PM
Hi Roger,
Could you open an issue on the bug tracker for the plugin? I'll have to look at it more closely, but basically it seems this question type does not support (yet) the 'interactivecountback' behaviour, which is set in your quiz activity details.
• Fri, Jan 18, 2019, 9:40 PM
Thank you Nicolas for your help.
• Tue, May 14, 2019, 9:13 PM
Problem: Export works well, if reimport question with a matrix question the following error on postgres:

Debug info: ERROR: null value in column "grademethod" violates not-null constraint
DETAIL: Failing row contains (116, 26258, null, null, 0, 1, matrix).
INSERT INTO mdl_question_matrix (questionid,multiple,grademethod,use_dnd_ui,shuffleanswers,renderer) VALUES($1,$2,$3,$4,$5,$6) RETURNING id
[array (
'questionid' => 26258,
'multiple' => NULL,
'use_dnd_ui' => '0',
'renderer' => 'matrix',
)]
Error code: dmlwriteexception
Stack trace:
*
line 489 of /lib/dml/moodle_database.php: dml_write_exception thrown
*
line 248 of /lib/dml/pgsql_native_moodle_database.php: call to moodle_database->query_end()
*
line 969 of /lib/dml/pgsql_native_moodle_database.php: call to pgsql_native_moodle_database->query_end()
*
line 1017 of /lib/dml/pgsql_native_moodle_database.php: call to pgsql_native_moodle_database->insert_record_raw()
*
line 57 of /question/type/matrix/libs/question_matrix_store.php: call to pgsql_native_moodle_database->insert_record()
*
line 210 of /question/type/matrix/questiontype.php: call to question_matrix_store->insert_matrix()
*
line 456 of /question/format.php: call to qtype_matrix->save_question_options()
*
line 123 of /question/import.php: call to qformat_default->importprocess()

• Sat, Sep 21, 2019, 3:45 PM
Mr. Dunand
I am using this question type in Moodle 3.7 and I have some issues with the feedback. First I typed the feedback for every option and when I save the question, the already written feedback just disappeared, only one of the options saved the feedback. Also, once I used the question preview, and I sent the answers in order to see the feedback, it was not shown at all..
How can I fix this issue?