matlab 矩阵求和我这是500x500的矩阵,里面全是特征值 我想求出一定的个数 可matlab总说我维数不对程序如下:[evecs,evals] = eig(K_n);prcent = 0.85; %选取主元个数k = 0;for i =
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 16:27:24
matlab 矩阵求和我这是500x500的矩阵,里面全是特征值 我想求出一定的个数 可matlab总说我维数不对程序如下:[evecs,evals] = eig(K_n);prcent = 0.85; %选取主元个数k = 0;for i =
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 矩阵求和我这是500x500的矩阵,里面全是特征值 我想求出一定的个数 可matlab总说我维数不对程序如下:[evecs,evals] = eig(K_n);prcent = 0.85; %选取主元个数k = 0;for i =
你这里的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)));
改成这样试试看是不是你想要的结果.