张量 t-product 积(matlab代码)

参考文献:Tensor Robust Principal Component Analysis with a New Tensor Nuclear Norm

首先是文章2.3节中 t-product 的定义:

块循环矩阵:

参考知乎博主的例子及代码:(t-product与t-QR分解,另一篇傅里叶对角化也很值得学习)

Matlab 复制代码
% A=zeros([3,2,2]);
% B=zeros([2,1,2]);
% 
% A(:,:,1)=[1 0;0 2;-1 3];
% A(:,:,2)=[-2 1;-2 7;0 -1];
% 
% B(:,:,1)=[3;-1];
% B(:,:,2)=[-2;-3];

A=rand(3,2,5);
B=rand(2,1,5);

C=t_product(A,B)

function C=t_product(A,B)
    % @author:slandarer
    % 获取张量大小
    [l,p,n]=size(A);dimA=[l,p,n];
    [p,m,n]=size(B);dimB=[p,m,n];
    dimC=[l,m,n];
    
    % 对A,B进行unfold展开操作
    ufold_A=reshape(permute(A,[2,1,3]),dimA(2),[])';
    ufold_B=reshape(permute(B,[2,1,3]),dimB(2),[])';
    
    % 对A构建循环矩阵
    bcirc_A=zeros([l*n,p*n]);
    for i=1:n
        bcirc_A(:,(1:p)+(i-1)*p)=circshift(ufold_A,l*(i-1),1);
    end
    
    % bcirc(A)·unfold(B)
    AB=bcirc_A*ufold_B;
    
    % 还原张量维度
    C=ipermute(reshape(AB',dimC([2,1,3])),[2,1,3]);
    CC = fft(C, [], 3)   % 观察,张量C后n3-1个切片呈共轭对称
end
相关推荐
数智工坊40 分钟前
周志华《Machine Learning》学习笔记--第九章--聚类
笔记·学习·机器学习
专注搞钱41 分钟前
半导体MES智能化升级方案:基于机器学习与Transformer大模型落地实战手册
人工智能·机器学习·transformer
Eloudy1 小时前
光子的单缝衍射模型
线性代数·机器学习·概率论
dd0121 小时前
从标签平滑到不确定性建模:SoftLabel如何重塑机器认知边界
机器学习·医疗影像诊断·不确定性建模·softlabel
weixin_4296302610 小时前
3.49 HVLF:一种跨场景的整体视觉定位框架
深度学习·机器学习·计算机视觉
深圳市机智人激光雷达10 小时前
技术筑牢安全冗余:激光雷达在自动驾驶高阶感知中的底层价值与范式演进
人工智能·安全·机器学习·3d·机器人·自动驾驶·无人机
DreamLife☼13 小时前
OpenBCI-实战五:脑电数据可视化仪表板
人工智能·机器学习·信息可视化·开源硬件·脑机接口·openbci
行业研究员16 小时前
腾讯云AgentMemory产品介绍与核心痛点解决
人工智能·机器学习·腾讯云·agentmem
苏州邦恩精密17 小时前
江苏蔡司3D扫描仪定制厂家:专业三维检测方案助力智能制造升级
人工智能·科技·机器学习·3d·自动化·制造
树谷-胡老师18 小时前
2024年中国大型数据中心空间分布及环境属性数据集
人工智能·机器学习