24小时热门版块排行榜    

CyRhmU.jpeg
查看: 585  |  回复: 4

小果果199128

新虫 (小有名气)

[求助] MATLAB初学者告急!!!程序运行不了?是哪里错了?卡在这动不了了,忘大神指点!!!已有2人参与

clear all;
clc;
bx=[0 0 0 0 0 0 ;0 0 0  0 0 0; 1 0 0 0 0 0; 0 1 0 0 0 0;0 0 sqrt(2) 0 0 0;0 0 0 sqrt(2) 0 0]; %Creation
b=bx';%Anniation
n=bx*b;
imu=0;
dat=0;
for mu=-0.4:0.01:-1;
    mu
    imu=imu+1;
z=4;
y=1;%k
v=0;
im=eye(6);
   t=0.1;
    g=1;
    id=0;
    w=0;
    ppa=1;%psi
    roa=1;
    while true
        id=id+1;
        p=ppa;
       ro=roa;
         h=[0 0 -z*t*p 0 0 0;0 y-mu  g -z*t*p 0 0;-z*t*p g w-mu 0 -sqrt(2)*z*t*p 0;0 -z*t*p 0 w+y-2*mu sqrt(2)*g -sqrt(2)*z*t*p;0 0 -sqrt(2)*z*t*p sqrt(2)*g 2*w-2*mu 0;0 0 0 -sqrt(2)*z*t*p 0 2*w+y-3*mu]+z*t*p*p*im;
    [va,da]=eig(h);
        p=va(:,1)'*bx*va(:,1);%
        ro=va(:,1)'*n*va(:,1);
    if(id>200);
        break
    end
    end
    dat(imu,1)=z*t;
    dat(imu,2)=ppa;
    dat(imu,3)=roa;
    dat(imu,4)=mu;
end
plot(dat(:,4),dat(:,2),'-rs',dat(:,4),dat(:,3),'-gs')
错误提示如下:
Index exceeds matrix dimensions.

Error in jcm3 (line 57)
plot(dat(:,4),dat(:,2),'-rs')%,dat(:,4),dat(:,3),'-gs')
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lsy12

银虫 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2015-05-04 13:38:39
你的dat变量定义的有问题,应该定义成矩阵,而不应该赋值为0;不知道你的dat是几行几列的矩阵,我也不知道该改成什么样
2楼2015-05-03 22:48:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ziying007

新虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2015-05-04 13:38:52
for循环的循环条件有问题。如果你在command window里检查一下的话,你会发现 mu=-0.4:0.01:-1会输出:
mu =
   Empty matrix: 1-by-0
所以,你的for没有起作用。而且你要把for的那个分号;去掉。
把for那里改成如下所示:
for mu=-0.4:-0.01:-1 %nBegin:nStep:nEnd  nStep要改成-1(负一)
    mu;
    imu=imu+1;
改后程序就能出图了。出了一个不知道是什么含义的图.....但是,我又不知道你要画什么
3楼2015-05-04 04:49:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小果果199128

新虫 (小有名气)

引用回帖:
2楼: Originally posted by lsy12 at 2015-05-03 22:48:07
你的dat变量定义的有问题,应该定义成矩阵,而不应该赋值为0;不知道你的dat是几行几列的矩阵,我也不知道该改成什么样

谢谢你啊,dat=0是定义初始值是0,后面我找见问题了,嘿嘿,就是呢个mu循环应该是-0.01。总之谢谢啦!
4楼2015-05-05 23:45:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小果果199128

新虫 (小有名气)

引用回帖:
3楼: Originally posted by ziying007 at 2015-05-04 04:49:47
for循环的循环条件有问题。如果你在command window里检查一下的话,你会发现 mu=-0.4:0.01:-1会输出:
mu =
   Empty matrix: 1-by-0
所以,你的for没有起作用。而且你要把for的那个分号;去掉。
把for那里改成 ...

嗯嗯,谢谢啦,老师说小木虫很好,果然啊,很温暖。
5楼2015-05-05 23:49:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小果果199128 的主题更新
信息提示
请填处理意见