MATLAB中使用SVD奇异值分解(matlab svd函数用法)

MATLAB中使用SVD奇异值分解(matlab svd函数用法)

技术教程gslnedu2025-07-28 16:45:033A+A-

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')


点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8