matlab个矩阵相乘,Matlab – 将矩阵与3d矩阵的每个矩阵相乘

我有两个似乎密切相关的matlab问题.

这是内部frobenius产品.在我下面的糟糕代码中,我使用的是更高效的二级定义.

>我想将矢量(N x 1)的每个元素与其3d矩阵(A x A x N)的“对应”矩阵相乘.

function Y_returned = problem_1(X_matrix, weight_matrix)

% X_matrix is the randn(50, 50, 2000) matrix

% weight_matrix is the randn(50, 50) matrix

[~, ~, number_of_matries] = size(X_matrix);

Y_returned = zeros(number_of_matries, 1);

for i = 1:number_of_matries

% Y_returned(i) = trace(X_matrix(:,:,i) * weight_matrix');

temp1 = X_matrix(:,:,i)';

temp2 = weight_matrix';

Y_returned(i) = temp1(:)' * temp2(:);

end

end

function output = problem_2(vector, matrix)

% matrix is the randn(50, 50, 2000) matrix

% vector is the randn(2000, 1) vector

[n1, n2, number_of_matries] = size(matrix);

output = zeros(n1, n2, number_of_matries);

for i = 1:number_of_matries

output(:, :, i) = vector(i) .* matrix(:, :, i);

end

output = sum(output, 3);

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值