计算机系统应用教程网站

网站首页 > 技术文章 正文

MATLAB中使用SVD奇异值分解 matlab矩阵奇异

btikc 2024-10-28 13:07:22 技术文章 9 ℃ 0 评论

SVD(Singular Value Decomposition, 奇异值分解)是线性代数中既优雅又强大的工具, 它揭示了矩阵最本质的变换. 使用SVD对矩阵进行分解, 能得到代表矩阵最本质变化的矩阵元素. 这就好比一个合数能表示为若干质数之积, 分解合数能得到表示该合数的质因数; 复杂周期信号可以表示为若干简单的正弦波和余弦波之和, 使用傅里叶变换能得到表示该信号的简单波; 复杂矩阵所代表的线性变换可由若干个简单矩阵所代表的线性变换组合起来, 使用SVD能找到这些简单矩阵。

matlab中代码如下:

img =imread('../test . jpg'); 
gray = im2gray(img);
gray = im2double(gray);

[U,S,V] = svd(gray);

k = 10;
newImage = 0;
for i = 1:k
    temp =U(:,i)*S(i,i)*V (:,i)';
    newImage = newImage+ temp;
end
figure;
subplot(2,1,1); imshow(img); xlabel('原始')
subplot(2,1,2); imshow(newImage'); xlabel('k=10')


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表