张量 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
相关推荐
EQUINOX12 小时前
【论文阅读】| MoCo精读
论文阅读·人工智能·python·深度学习·机器学习
bing_feilong4 小时前
FAST_LIO2(2): 运行记录
机器学习·slam
城事漫游Molly6 小时前
用AI提炼研究问题与假设的完整提示词——从模糊想法到精准RQ/Hypothesis,AI辅助精化全流程
人工智能·机器学习·prompt·ai for science·博士生必读·应用语言学·研究问题
workflower6 小时前
室内外配送机器人-应用路径
人工智能·机器学习·设计模式·矩阵·自动化
三品吉他手会点灯9 小时前
嵌入式机器学习 - 学习笔记1.0.2 - 学习路线导览:从机器学习基础到 TinyML应用
人工智能·笔记·嵌入式硬件·学习·机器学习
lisw0510 小时前
人-智能体协同的信任研究!
人工智能·机器学习·软件工程
科技圈观察11 小时前
GEO技术深度解析:RAG检索增强如何重塑品牌在AI搜索中的认知权重
人工智能·机器学习
三品吉他手会点灯11 小时前
嵌入式机器学习 - 学习笔记1.0.1 - 从 Alexa 到 TinyML:为什么机器学习开始跑进微控制器?
人工智能·笔记·嵌入式硬件·学习·机器学习
大鱼>11 小时前
模型公平性与偏差检测:AI伦理实战指南
人工智能·深度学习·算法·机器学习
AI科技星12 小时前
乖乖数学全域超复数统一场论:未来可能形成的历史地位
人工智能·机器学习·金融·乖乖数学·全域数学