将(4D矩阵*1D向量)运算转换为无循环的独立(3D矩阵*0D标量)运算

S C*_*hen 5 matlab loops vectorization

有没有办法矢量化以下内容:

    for i = 1:6
        te = k(:,:,:,i).*(c(i));
    end
Run Code Online (Sandbox Code Playgroud)

我试图将4D矩阵k乘以向量c,将其分解为独立的(3D矩阵*标量)运算.我已经在这个函数文件中的while循环中有另外两个不可避免的for循环,并且我尽力避免循环.

任何有关这方面的见解将不胜感激!

-SC

bla*_*bla 5

您可以使用MTIMESX执行此操作- 一种快速矩阵乘法工具,由James Tursa提供多维支持,可在Matlab的文件交换中找到.

它很简单:

C = mtimesx(A,B) 
Run Code Online (Sandbox Code Playgroud)

执行计算C = A*B.