这个地方报错是咋回事?

就是这里我用svd压缩矩阵,这里报错,没看出来哪里有问题,用的是svd压缩图像再重构,指定奇异值的和的百分百设置k值

img

看你的代码13行,那个函数参数设置的有误,应该是只有一个参数,但是你给了两个

dot那里哪个矩阵的维度不对,有哪个是一维的矩阵,你用二维的取数据去截取([y1:y2,x1:x2]这种方式截取是针对二维矩阵,一维只能[x:y]),就是这个错误。

img


b是二维的,这么截取就没错,a是一维的数据就报错了

IndexError: too many indices for array: array is 1-dimensional,but 2 were indexed
IndexError:数组的索引太多:数组是一维的,但索引了2个
报错的意思就是你的这个D = U [;,;k].dot...(VT[:k,:]))矩阵的维度不正确。

函数得参数得个数没对上

参考一下呢

参考
https://blog.csdn.net/weixin_34255055/article/details/94685041?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166878548616800186513946%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166878548616800186513946&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-94685041-null-null.nonecase&utm_term=%E2%88%91%20sigma&spm=1018.2226.3001.4450