24小时热门版块排行榜    

查看: 521  |  回复: 3

dairenyihao

新虫 (小有名气)

[求助] 代码错误

mymat=[
3        2        23.2        1        1
2        3        71.2        1        1
5        6        107.2        1        1
2        1        155.2        1        1
8        7        179.2        1        1
6        5        215.2        1        1
3        2        251.2        1        1
8        9        263.2        1        1
4        5        287.2        1        1
7        6        323.2        1        1
4        3        347.2        1        1
5        4        359.2        1        1

];

[nr,nc] = size(mymat);
for ii = 1:nr
    a = mymat(ii,1); b = mymat(ii,2);
    data = mymat(ii,end-2:end);
    for h = 1:ii-1
        if a == mymat(h,1)&&b == mymat(h,2);
           filename =['D:\dangeonsets\s18\run7_small_',int2str(a),'_',int2str(b),(int2str(1)),'.txt'];
        else
           filename =['D:\dangeonsets\s18\run7_small_',int2str(a),'_',int2str(b),'.txt'];
        end
    end
    fid = fopen(filename,'wt');
    fprintf(fid,'%6.2f %d %d\n',data);
    fclose(fid);
end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

感谢参与,应助指数 +1
很小的错误 内循环里不该写成 ii-1,  因为当ii=1时,h=ii-1=0.  这时mymat(0,1)当然错了,matlab数组下标都从1开始的。
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2013-11-10 11:08:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
dairenyihao: 金币+20 2013-11-11 09:49:51
针对你当前的mymat,楼主可尝试:
mymat=[
3        2        23.2        1        1
2        3        71.2        1        1
5        6        107.2        1        1
2        1        155.2        1        1
8        7        179.2        1        1
6        5        215.2        1        1
3        2        251.2        1        1
8        9        263.2        1        1
4        5        287.2        1        1
7        6        323.2        1        1
4        3        347.2        1        1
5        4        359.2        1        1];
[nr,nc] = size(mymat);
for ii = 1:nr
    a = mymat(ii,1); b = mymat(ii,2);
    data = mymat(ii,end-2:end);
    filename =['C:\Users\PC\Desktop\run7_small_',int2str(a),'_',int2str(b),'.txt'];
    for h = 1:ii-1
        if a == mymat(h,1)&&b == mymat(h,2);
           filename =['C:\Users\PC\Desktop\run7_small_',int2str(a),'_',int2str(b),(int2str(1)),'.txt'];
           break;
        else
           filename =['C:\Users\PC\Desktop\run7_small_',int2str(a),'_',int2str(b),'.txt'];
        end
    end
    fid = fopen(filename,'wt');
    fprintf(fid,'%6.2f %d %d\n',data);
    fclose(fid);
end
3楼2013-11-10 12:56:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

引用回帖:
3楼: Originally posted by zhg19 at 2013-11-10 12:56:05
针对你当前的mymat,楼主可尝试:
mymat=;
= size(mymat);
for ii = 1:nr
    a = mymat(ii,1); b = mymat(ii,2);
    data = mymat(ii,end-2:end);
    filename =;
    for h = 1:ii-1
        if a ==  ...

还有filename里路径应该改为你需要的,即C:\Users\PC\Desktop改为D:\dangeonsets\s18
4楼2013-11-10 12:59:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dairenyihao 的主题更新
信息提示
请填处理意见