Difference between revisions of "matrixMultiply"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
m (Some wiki formatting)
 
Line 7: Line 7:
 
|gr2= Math - Vectors
 
|gr2= Math - Vectors
  
|descr= Returns resulting matrix from the {{Wikipedia|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 <nowiki>==</nowiki> {{hl|rows}} matrix2. The resulting matrix will be of the size n m. If the shapes do not match, empty array [] will be returned.<br><br>
+
|descr= [[Image:matrixMultiply.jpg|right|600px]]
[[Image:matrixMultiply.jpg|600px]]
+
Returns resulting matrix from the {{Wikipedia|Matrix_multiplication|multiplication}} of two matrices. First matrix must be of the size n &times; '''k''', while the second must be of the size '''k''' &times; m, i.e {{hl|columns}} matrix1 == {{hl|rows}} matrix2. The resulting matrix will be of the size n &times; m. If the shapes do not match, empty array [] will be returned.
  
 
|s1= matrix1 [[matrixMultiply]] matrix2
 
|s1= matrix1 [[matrixMultiply]] matrix2
  
|p1=matrix1: [[Array]] - matrix of the size {{hl|n}}''(rows)'' {{hl|k}}''(columns)''
+
|p1= matrix1: [[Array]] - matrix of the size {{hl|n}}''(rows)'' &times; {{hl|k}}''(columns)''
  
|p2=matrix2: [[Array]] - matrix of the size {{hl|k}}''(rows)'' {{hl|m}}''(columns)''
+
|p2= matrix2: [[Array]] - matrix of the size {{hl|k}}''(rows)'' &times; {{hl|m}}''(columns)''
  
|r1= [[Array]] - resulting matrix of the size {{hl|n}}''(rows)'' {{hl|m}}''(columns)''
+
|r1= [[Array]] - resulting matrix of the size {{hl|n}}''(rows)'' &times; {{hl|m}}''(columns)''
  
|x1= <code>[
+
|x1= <sqf>
 +
[
 
[2],
 
[2],
 
[2]
 
[2]
 
]  
 
]  
[[matrixMultiply]]
+
matrixMultiply  
 
[  
 
[  
 
[3]  
 
[3]  
Line 30: Line 31:
 
[6],
 
[6],
 
[6]
 
[6]
] */</code>
+
] */
|x2= <code>[
+
</sqf>
 +
 
 +
|x2= <sqf>
 +
[
 
[-1,0,0],
 
[-1,0,0],
 
[0,-1,0]
 
[0,-1,0]
 
]  
 
]  
[[matrixMultiply]]
+
matrixMultiply  
 
[
 
[
 
[1,2],
 
[1,2],
Line 45: Line 49:
 
[-1,-2],
 
[-1,-2],
 
[-3,-1]
 
[-3,-1]
] */</code>
+
] */
 +
</sqf>
  
 
|seealso= [[matrixTranspose]] [[vectorAdd]] [[vectorMagnitude]] [[vectorNormalized]] [[vectorMultiply]] [[vectorDotProduct]] [[vectorCrossProduct]] [[vectorDistance]] [[vectorLinearConversion]] [[vectorCos]] [[vectorFromTo]] [[vectorModelToWorld]] [[vectorWorldToModel]] [[BIS_fnc_transformVectorDirAndUp]]
 
|seealso= [[matrixTranspose]] [[vectorAdd]] [[vectorMagnitude]] [[vectorNormalized]] [[vectorMultiply]] [[vectorDotProduct]] [[vectorCrossProduct]] [[vectorDistance]] [[vectorLinearConversion]] [[vectorCos]] [[vectorFromTo]] [[vectorModelToWorld]] [[vectorWorldToModel]] [[BIS_fnc_transformVectorDirAndUp]]
 
}}
 
}}
  
<dl class="command_description">
+
{{Note
 
+
|user= oOKexOo
<dt></dt>
+
|timestamp= 20190630035300
<dd class="notedate">Posted on 30 Jun, 2019</dd>
+
|text= Note that this command won't automatically transform a 1D array into a column vector
<dt class="note">[[User:oOKexOo| oOKexOo]]</dt>
+
<sqf>
<dd class="note">
+
[[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [1,2,3] // wrong, syntax error
Note that this command won't transform a 1D array automatically into a column vector
+
[[-1,0,0],[0,-1,0],[0,0,-1]] matrixMultiply [[1,2,3]] // wrong, will return []
<code>[[-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]] // correct, will return [[-1], [-2], [-3]]
[[-1,0,0],[0,-1,0],[0,0,-1]] [[matrixMultiply]] &#91;[1,2,3]] // wrong, will return []
+
</sqf>
[[-1,0,0],[0,-1,0],[0,0,-1]] [[matrixMultiply]] [[1], [2], [3]] // correct, will return [[-1], [-2], [-3]]
+
}}
</code>
 
</dl>
 

Latest revision as of 20:22, 3 May 2022

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 - matrix of the size n(rows) × k(columns)
matrix2: Array - matrix of the size k(rows) × m(columns)
Return Value:
Array - 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
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]]