作业帮 > 综合 > 作业

matlab 矩阵求和

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 21:24:56
matlab 矩阵求和

我这是500x500的矩阵,里面全是特征值  我想求出一定的个数 可matlab总说我维数不对程序如下:
[evecs,evals] = eig(K_n);
prcent = 0.85;                                     %选取主元个数
k = 0;
for i = 1:size(evecs,1) %返回特征向量的行数
    alpha(i) =sum(evecs(1:i))/sum(evecs); (报错)
    if alpha(i) >= prcent
        k = i;
        break;
    end
end
matlab 矩阵求和
你这里的evecs是一个500*500的矩阵,你这里的evecs(1:i)是它的第一列的前i个数.sum(evecs(1:i))是一个标量,一个数.而后面的sum(evecs)是一个向量.你报错的提示一定是这样的:
Error using /
Matrix dimensions must agree.
如果改成./(点除)就可以运行了,但这显然不是你的意图.
你的想法应该是这样的:
alpha(i) =sum(sum(evecs(1:i,:)))/(sum(sum(evecs)));
改成这样试试看是不是你想要的结果.