本仓库提供了基于采样的张量环分解算法的Matlab代码,用于实验。该方法是由奥斯曼·阿西夫·马利克(Osman Asif Malik)和史蒂芬·贝克尔(Stephen Becker)提出的,详细实现见脚本tr_als_sampled.m。实验中使用了脚本experiment1.m和experiment4.m对合成数据和真实数据进行了验证。此外,我们还实现了标准TR-ALS算法(tr_als.m)、rTR-ALS算法(rtr_als.m)、TR-SVD算法(TRdecomp_ranks.m和TRdecomp.m修改版)、TR-SVD的随机变体(tr_svd_rand.m)。需要使用mtimesx,请查看相关位置获取。
基于采样的张量环分解算法Matlab代码实现TR-ALS-Sampled
相关推荐
HTucker Toolbox MATLAB张量分解工具
专门跑Hierarchical Tucker分解的htucker toolbox matlab,在高维张量数据时,真的是个省心又省力的利器。比起传统的Tucker分解,这套工具用层次结构来搞定庞大的数据维度,压缩率更高,计算也更快。
支持的函数挺全,从初始化、分解,到重构、剪枝、可视化都有,操作方式也 MATLAB 风——用起来跟SVD那套感觉差不多,顺手。比如要压缩一个四维张量,分分钟就能搞定,甚至还能做特征提取。
实际用下来,像图像压缩、医学影像、甚至大规模推荐系统这种场景,都能直接上手。你只要用对函数,比如htensor结构初始化,再用分解函数一跑,出来的结果还能直接丢进模型里。
哦对了
Matlab
0
2025-06-17
EMD分解MATLAB代码实现
EMD 的信号分解能力是真的挺强,适合那种非线性又不稳定的信号。你要是做图像、金融时间序列,或者生物信号啥的,挺值得一试。EMD(经验模态分解)这个方法是 Huang 在 1998 年提出来的,它可以把复杂信号一步步拆成多个不同频率的部分,也就是所谓的 IMF(内在模态函数),加一个残差部分。代码整体结构清晰,每一步都注释得蛮详细,适合用来学习。核心流程就是通过三次样条插值找到上下包络线,计算平均值,差分之后就能拿到第一个 IMF。你每次提取一个 IMF 后,都会更新残差,重复上面的过程,直到达到你设置的 IMF 数量或者残差够小就可以停了。代码还顺带把希尔伯特变换也做了,能直接算出每个 IM
算法与数据结构
0
2025-06-15
Matlab LU分解算法实现
LU 分解的 Matlab 实现还挺实用,适合线性方程组那一类问题。你只要用个lu()函数,基本就搞定大半了,响应也快,代码也清爽。尤其对那种大型稀疏矩阵,效率确实比常规方法高不少。像[L,U,P] = lu(A),一行就能分出来下三角L、上三角U,还有个置换矩阵P,方便你做行交换。Matlab 里对 pivoting 得还不错,不容易出数值不稳定那种大坑。用 L、U 分解之后,解Ax=b其实就两步:先解Ly=Pb,再解Ux=y,一步步来,计算压力也不大。尤其是你需要重复解多个不同右端项的线性系统时,LU 分解是真的省心。代码怎么写?其实直白:[L,U,P] = lu(A);
y = L \
Matlab
0
2025-06-23
PARAFAC 分解算法 MATLAB 实现
在稀疏张量中,parafac_als 用于实现 PARAFAC 分解。该子函数是张量分解的核心算法,搭配主函数使用。
数据挖掘
18
2024-05-13
Matlab代码示例共生矩阵的非负张量因式分解
这是一个用Matlab实现的代码示例,用于通过非负张量因式分解区分表型和独特表型。该代码需要使用Tensor工具箱2.6版,并处理count.csv和label.csv数据格式,其中包括每个受试者的诊断和处方并发计数,以及临床结局的受试者ID。此外,还涉及诊断和处方的成对相似性矩阵similarities.csv。
Matlab
18
2024-07-30
使用LU分解的矩阵逆MATLAB示例代码与算法实现
LU 分解的矩阵逆代码写得挺清楚的,适合刚接触数值线性代数或者需要快速复现算法的朋友。用 MATLAB 做开发的话,这套示例代码还蛮实用,前向替换、后向替换、部分旋转这些步骤都没落下。代码结构也比较规整,逻辑清晰,基本照着抄就能跑通。不用自己去重写底层逻辑,响应也快,适合放进工程里临时用一用或者作为教学参考。如果你正在做矩阵求逆相关的,建议看看这套。
Matlab
0
2025-06-17
基于元素的Galerkin方法的Matlab张量积代码
这是一个关于在Matlab中实现张量积的代码示例。
Matlab
8
2024-09-27
Matlab三维曲面完整代码形状约束张量分解(SCTD)详解
这是Bethany Lusch、Eric C. Chi和J. Nathan Kutz编写的“使用超完备图书馆中的稀疏表示法进行形状约束张量分解”的Matlab完整代码。他们开发了一种名为形状约束张量分解(SCTD)的数据分解方法,用于将时间维度表示为超完备库中元素的稀疏线性组合。这种方法不仅提供了数据的可解释性和分析形式,还避免了将数据展平成矩阵的局限性,能够有效提取瞬时和间歇现象。该代码主要使用Matlab编写,附带了使用R建立示例数据集的说明。您可以使用此代码重现结果,也可以根据自己的数据进行分解。BaseExperiment.m文件包含了测试算法的核心功能,具有多个可调参数,使得实验过程
Matlab
7
2024-09-29
基于MATLAB实现的EDA算法综合评价代码
EDA(Estimation of Distribution Algorithm)是一种进化算法,它通过建模问题的概率分布来优化解决方案。综合评价通常涉及多个评估指标的综合考虑,以得出全局的优化排序或最佳解决方案。基于EDA算法的综合评价包括多目标优化,如加权求和和Pareto前沿方法;概率模型建模,例如高斯和多项式模型;集成优化,与其他优化算法结合使用;以及评价算法的自适应性,根据问题特性调整算法性能。
数据挖掘
14
2024-08-13