matrixMultiply: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(62 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command|=
{{RV|type=command
____________________________________________________________________________________________


| arma3 |Game=
|game1= arma3
|version1= 1.92


|1.92|Game Version =(number surrounded by NO SPACES)
|gr1= Math
|gr2= Math - Vectors


|arg= |Multiplayer Arguments =("local" or "global")
|descr= [[File:matrixMultiply.jpg|right|600px]]
Returns resulting matrix from the {{Link|https://en.wikipedia.org/wiki/Matrix_multiplication|multiplication}} of two matrices. First matrix must be of the size n × '''k''', while the second must be of the size '''k''' × m, i.e {{hl|columns}} matrix1 == {{hl|rows}} matrix2. The resulting matrix will be of the size n × m. If the shapes do not match, empty array [] will be returned.


|eff= |Multiplayer Effects =("local" or "global")
|s1= matrix1 [[matrixMultiply]] matrix2


|exec= |Multiplayer Execution =("server" or empty)
|p1= matrix1: [[Array]] of [[Array]] of [[Number]]s - matrix of the size {{hl|n}}''(rows)'' × {{hl|k}}''(columns)''
____________________________________________________________________________________________


| Resulting matrix of matrix multiplication{{wip}} |Description=
|p2= matrix2: [[Array]] of [[Array]] of [[Number]]s - matrix of the size {{hl|k}}''(rows)'' × {{hl|m}}''(columns)''
____________________________________________________________________________________________


| matrix1 [[matrixMultiply]] matrix2 |Syntax=
|r1= [[Array]] of [[Array]] of [[Number]]s - resulting matrix of the size {{hl|n}}''(rows)'' × {{hl|m}}''(columns)''


|p1=matrix1: [[Array]]
|x1= <sqf>
[
[2],
[2]
]
matrixMultiply
[
[3]
]
/* returns
[
[6],
[6]
] */
</sqf>


|p2=matrix2: [[Array]]
|x2= <sqf>
[
[-1,0,0],
[0,-1,0]
]
matrixMultiply
[
[1,2],
[3,1],
[2,3]
]
/* returns
[
[-1,-2],
[-3,-1]
] */
</sqf>


| [[Array]] |Return Value=
|seealso= [[matrixTranspose]] [[vectorAdd]] [[vectorMagnitude]] [[vectorNormalized]] [[vectorMultiply]] [[vectorDotProduct]] [[vectorCrossProduct]] [[vectorDistance]] [[vectorLinearConversion]] [[vectorCos]] [[vectorFromTo]] [[vectorModelToWorld]] [[vectorWorldToModel]] [[BIS_fnc_transformVectorDirAndUp]]
____________________________________________________________________________________________
}}
 
|x1= <code>[[2],[2]] [[matrixMultiply]] [ [3] ]//Returns [[6],[6]]</code> |Example 1=
____________________________________________________________________________________________
 
|mp= - |Multiplayer Behaviour=


| |See Also=
{{Note
|user= oOKexOo
|timestamp= 20190630035300
|text= Note that this command won't automatically transform a 1D array into a column vector
<sqf>
[[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [1,2,3] // wrong, syntax error
[[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [[1,2,3]] // wrong, will return []
[[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [[1], [2], [3]] // correct, will return [[-1], [-2], [-3]]
</sqf>
}}
}}
<dl class="command_description">
<!-- BEGIN Note Section -->
<!-- For example:
<dd class="notedate">Posted on Month Day, Year - Time (UTC)</dd>
<dt class="note">'''[[User:User Name|User Name]]'''</dt>
<dd class="note">This is an example note. It is true and verifiable, and contains a little code snippet.
<code>[[if]] ([[_this]] == anExample) [[then]] { [[hint]] "Leave it here for others to read"; };</code></dd>
-->
<!-- END Note Section -->
</dl>
<h3 style="display:none">Bottom Section</h3>
<!-- Appropriate categories go here -->
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Latest revision as of 14:13, 15 June 2024

Hover & click on the images for description

Description

Description:
matrixMultiply.jpg
Returns resulting matrix from the multiplication of two matrices. First matrix must be of the size n × k, while the second must be of the size k × m, i.e columns matrix1 == rows matrix2. The resulting matrix will be of the size n × m. If the shapes do not match, empty array [] will be returned.
Groups:
MathMath - Vectors

Syntax

Syntax:
matrix1 matrixMultiply matrix2
Parameters:
matrix1: Array of Array of Numbers - matrix of the size n(rows) × k(columns)
matrix2: Array of Array of Numbers - matrix of the size k(rows) × m(columns)
Return Value:
Array of Array of Numbers - resulting matrix of the size n(rows) × m(columns)

Examples

Example 1:
[ [2], [2] ] matrixMultiply [ [3] ] /* returns [ [6], [6] ] */
Example 2:
[ [-1,0,0], [0,-1,0] ] matrixMultiply [ [1,2], [3,1], [2,3] ] /* returns [ [-1,-2], [-3,-1] ] */

Additional Information

See also:
matrixTranspose vectorAdd vectorMagnitude vectorNormalized vectorMultiply vectorDotProduct vectorCrossProduct vectorDistance vectorLinearConversion vectorCos vectorFromTo vectorModelToWorld vectorWorldToModel BIS_fnc_transformVectorDirAndUp

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
oOKexOo - c
Posted on Jun 30, 2019 - 03:53 (UTC)
Note that this command won't automatically transform a 1D array into a column vector
[[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [1,2,3] // wrong, syntax error [[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [[1,2,3]] // wrong, will return [] [[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [[1], [2], [3]] // correct, will return [[-1], [-2], [-3]]