日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

matlab二维度矩阵转化三维_Matlab三维矩阵运算

發(fā)布時間:2024/9/30 91 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab二维度矩阵转化三维_Matlab三维矩阵运算 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

三維矩陣按頁相乘:

問題:兩個三維矩陣,按頁進行矩陣相乘。

A = rand(a1,a2,n); B = rand(a2,b2,n); C = zeros(a1,b2,n); for i=1:n C(:,:,i) = A(:,:,i) *B(:,:,i) ;end

matlab工具包:mtimes

下載地址:

(1)mathworks網(wǎng)站:https://www.mathworks.com/matlabcentral/fileexchange/25977-mtimesx-fast-matrix-multiply-with-multi-dimensional-support

(2)github網(wǎng)站:https://github.com/cybertk/mtimesx

下載壓縮包,解壓后,找到src中的mtimesx_build.m文件,將第166行的代碼修改為:

mexopts = [prefdir 'mex_C_win64.xml'];

或者

mexopts = [prefdir 'mex_C++_win64.xml'];

修改后,運行mtimesx_build.m,運行成功后顯示如下:

在運行mtimesx_build.m后,有可能會出現(xiàn)錯誤,如下:

在文件夾“C:UsersAdministratorAppDataRoamingMathWorksMATLABR2018b”中查找,并沒有找到文件mex_C_win64.xml或者mex_C++_win64.xml。

解決辦法:首先確保安裝了Visual Studio編譯器,然后在Matlab命令行窗口執(zhí)行指令:

mex -setup C

或者

mex -setup C++

執(zhí)行命令后,會顯示

再去目錄...MathWorksMATLABR2018b中,可看到文件mex_C_win64.xml或者mex_C++_win64.xml已經(jīng)存在。

再次運行mtimesx_build.m,問題解決。

三維矩陣按頁運算:

A=rand(2,3,5); B=rand(3,4,5); C=mtimesx(A,B);

那么得到的C(2,4,5)維度矩陣。

三維矩陣和二維矩陣相乘

問題:三維矩陣按頁和一個二維矩陣按列相乘。

A = rand(a1,a2,n); B = rand(a2,n); C = zeros(a1,n); for i=1:n C(:,i) = A(:,:,i) *B(:,i) ; end

方法1:for循環(huán)

for i=1:nC(:,i) = A(:,:,i) *B(:,i) ; end

方法2:arrayfun方法

[m,n] = meshgrid( 1:n, 1:a1 ); temp = arrayfun( @(x,y)A(x,:,y)*B(:,y), n(:), m(:) ); C = reshape(tempfibn, 3, []);

方法3:將二維矩陣擴展成三維矩陣

tempB= reshape(B, a2,1,n); tempC= mtimesx(A, tempB); C = reshape(tempC, 3, []);

總結(jié)

以上是生活随笔為你收集整理的matlab二维度矩阵转化三维_Matlab三维矩阵运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。