24小时热门版块排行榜    

查看: 510  |  回复: 2

bdx1989

新虫 (初入文坛)

[求助] for循环中本征矢量转入新矩阵时出的问题已有1人参与

在for循环中每个循环都计算了一个矩阵的本征值和本征矢量,在每个循环结尾我都把本征值和本征矢量各自赋到新的大矩阵中(大矩阵的大小都已知)。
如果我不用for循环,单独把矩阵本征值和本征矢量算出并赋到大矩阵里是可以运行的,而且大矩阵里本征值和本征矢量的位置都是我要的正确的。
但是放进循环就出问题了,一直提示我计算的矩阵not square,在[V,D]=eig(A)中不能计算。
code如下
CODE:
for J=0:Jmax
    hsym=zeros(2*J+1);
    for Kp=-J:J
        m=m+1;
        n=0;
        for K=-J:J
            n=n+1;
            if Kp==K
                hsym(n,m)=F*(J*(J+1)-K^2)+G*K^2;
            elseif Kp==K+2
                hsym(n,m)=H*(0.25*(J*(J+1)-K*(K+1))*(J*(J+1)-(K+1)*(K+2)))^(0.5);
            elseif Kp==K-2
                hsym(n,m)=H*(0.25*(J*(J+1)-K*(K-1))*(J*(J+1)-(K-1)*(K-2)))^(0.5);
            end
        end
    end
    [evrp,evlp]=eig(hsym);
    %%evlp=evlp';
    for e=1:(2*J+1)
        evl(J^2+e,J^2+e)=0.5*(A+C)*J*(J+1)+0.5*(A-C)*evlp(e,e);
        for ee=1:(2*J+1)
            evr(J^2+e,ee)=evrp(e,ee);
        end
    end
end

求解决啊我要疯掉了
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

asmeng

金虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1

bdx1989

新虫 (初入文坛)

相关版块跳转 我要订阅楼主 bdx1989 的主题更新
信息提示
请填处理意见