MATLAB: How to multiply two ‘int32’ data type matrices in MATLAB

int16int64int8integerMATLABuint16uint32uint64uint8

I would like to multiply a variable of size of (100,100) with another variable of size (100,100). Both of the variables are in 'int32' format.

Best Answer

The ability to do a direct matrix multiplication operation on two ‘int32’ variables is not available in MATLAB.
You can use the following code to work around this issue:
function z = mtimes(x,y)
if (isscalar(x) || isscalar(y))
z = x .* y;
return;
end
m = size(x,1);
n = size(x,2);
if (n ~= size(y,1))
error('mmultmanual:size', 'matrix inner dimensions do not agree');
end
p = size(y,2);
z = zeros(m,p,class(x));
for i = 1:m
z(i,1:p) = sum(bsxfun(@times, reshape(x(i,:),n,1), y), 1);
end
Place the above code in a file called ‘mtimes.m’ and save this file in a directory with name ‘@int32’. This directory must be placed in a directory which is on the MATLAB path but do not add ‘@int32’ to the MATLAB path. This will give you the feature of multiplying two ‘int32’ matrices.
This code has been written only as an example for your use and is not supported by the MathWorks.