Calculation with three dimensional matrices
6 ビュー (過去 30 日間)
古いコメントを表示
I want to calculate a vector
, with each element
defined as follows
, with each element
defined as follows
, where
is the set of N dimensional vector, and
is also the set of N dimensional vector, c is a constant. The superscript T is denoted as the transpose operation.In my matlab code,
is stored as a three dimensional matrix G, its dimension is
(where
).
is stored as a three dimensional matrix G, its dimension is
).
is also stored as a three dimensional matrix W, its dimension is
). c is a scalar.I know i can use multiple for loop to calculate this vector Y, but it is too inefficient. Is there any some fast way to calculate it, maybe use three-dimensional matrix calculation method?
9 件のコメント
Torsten
2025 年 1 月 21 日
I've made the opposite experience.
Imagine you have code for the computation of Y_i. I would be really surprised if it were easier to read than the mathematical formula from above.
Paul
2025 年 1 月 21 日
Perhaps you should post the code that you have along with sample input data.
採用された回答
埃博拉酱
2025 年 1 月 22 日
function Y=cGW_Y(c,G,W)
Y=permute(pagemtimes(permute(G,[2,3,1]),permute(W,[3,2,1])),[4,3,2,1]);%1×K×I×J
Y=pagemtimes(Y,'none',Y,'ctranspose');%1×1×I×J
Y=log2(sum(Y./(sum(Y,3)+c*c-Y),4)+1);%1×1×I
end
その他の回答 (1 件)
Divyanshu
2025 年 1 月 21 日
You can try using 'pagetimes' function of MATLAB. For more details about 'pagetimes' refer the following documentation link:
Additionally, you can take reference from following MATLAB answer thread as well:
Hope it helps!
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!