我怎么把两个“int32”数据类型在MATLAB矩阵吗?

18视图(30天)
我想把一个变量的大小(100100)与另一个变量的大小(100100)。这两个变量是“int32”格式。

接受的答案

MathWorks支万博1manbetx持团队
能力做一个直接对两个“int32”变量矩阵乘法操作不可用MATLAB。
您可以使用下面的代码来解决这个问题:
函数z = mtimes (x, y)
如果(isscalar (x) | | isscalar (y))
z = x。* y;
返回;
结束
m =大小(x, 1);
n =大小(x, 2);
如果(n ~ =大小(y, 1))
错误(“mmultmanual:大小”,“矩阵的内在维度不一致”);
结束
p =大小(y, 2);
z = 0 (m p类(x));
i = 1: m
z(我,1:p) =总和(bsxfun (@times,重塑(x(我:),n, 1), y), 1);
结束
上面的代码在一个文件名为“mtimes。m和保存这个文件目录名称的@int32”。这个目录必须放置在一个目录在MATLAB的路径但不要添加“@int32”到MATLAB路径。这将给你两个“int32”矩阵相乘的特点。
这个代码已经编写只作为一个例子供你使用,不支持MathWorks。万博1manbetx

更多的答案(2)

理查德Zapor
理查德Zapor 2020年7月31日
函数z = mtimes (x, y)
如果(isscalar (x) | | isscalar (y))
z = x。* y;
返回;
结束
m =大小(x, 1);
n =大小(x, 2);
如果(n ~ =大小(y, 1))
错误(“mmultmanual:大小”,“矩阵的内在维度不一致”);
结束
p =大小(y, 2);
z = 0 (m p类(x));
%可能比bsxfun更快
rx = 1: m
cy = 1: p
z (rx, cy) = (x (rx:)的总和。* y (:, cy));
结束
结束
结束

理查德Zapor
理查德Zapor 2020年7月31日
uint32/64矩阵乘法的一个特例,x是一个二进制矩阵y是一个uint32/64向量。
这可以很快计算和输出uint32/64向量。
函数z = bintimes64 (x, y)
% z = x * y [m, n] * [n, 1],其中x是一个二进制矩阵(真正的/ int)和y是一个矢量uint64 / uint32
%不包括错误检查
[m, n] =大小(x);
z = 0 (m, 1类(y));
j = 1: n
v = x (:, j) = = 1;
z (v) = z (v) + y (j);
结束
结束

s manbetx 845


释放

R14SP1

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!