张量 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
相关推荐
songyuc7 小时前
【Qwen】DataArguments说明
深度学习·算法·机器学习
2401_841495647 小时前
【机器学习】电商销售额预测实战
人工智能·python·机器学习·数据清洗·矩阵分解·特征可视化·模型训练评估
漂洋过海的鱼儿7 小时前
机器学习-K临近算法(1)
机器学习
辰尘_星启8 小时前
[最优控制]MPC模型预测控制
线性代数·机器学习·机器人·概率论·控制·现代控制
亚里随笔9 小时前
相对优势估计存在偏差——揭示群体相对强化学习中的系统性偏差问题
人工智能·深度学习·机器学习·llm·agentic·rlvr
2501_9481201511 小时前
基于机器学习的网络异常检测与响应技术研究
网络·机器学习·php
机器学习之心11 小时前
Stacking集成传统机器学习模型与新型KAN网络回归预测+五模型回归对比
人工智能·机器学习·回归·stacking集成·kan网络回归预测
szcsun511 小时前
机器学习(三)--分类问题
人工智能·机器学习·分类
汽车仪器仪表相关领域12 小时前
一表双显+±1%精度:MTX-D数字油压温度计赛车/改装车发动机监测实战全解
大数据·网络·数据库·人工智能·机器学习·单元测试·可用性测试
玄同76513 小时前
SQLAlchemy 模型定义完全指南:从基础到进阶的 ORM 实战
人工智能·python·sql·mysql·机器学习·自然语言处理·database