新手求助,怎么也找不出问题在哪,求大神!
matlab吧
全部回复
仅看楼主
level 5
好好经济 楼主
楼主最近刚接触matlab,遇到了一个很纠结的问题,如下。
先输入程序:
x1=[1 2 3 4 ;
3 2 1 4;
2 3 4 4;
4 5 5 4];
N=size(x1)
for i=1:N(1)
for j=1:N(2)
x2(i,j)=100/x1(i,j)
end
end
x2
得到的结果是
x2 =
100.0000 50.0000 33.3333 25.0000
33.3333 50.0000 100.0000 25.0000
50.0000 33.3333 25.0000 25.0000
25.0000 20.0000 20.0000 25.0000
这个没问题,但接下来改变x1,去掉最后一列,问题就来了
x1=[1 2 3 ;
3 2 1 ;
2 3 4 ;
4 5 5 ];
N=size(x1)
for i=1:N(1)
for j=1:N(2)
x2(i,j)=100/x1(i,j)
end
end
x2
这个时候输出的结果依然和之前一样,这不科学啊。但重启matlab后再输入第二次的代码结果就变成了
x2 =
100.0000 50.0000 33.3333
33.3333 50.0000 100.0000
50.0000 33.3333 25.0000
25.0000 20.0000 20.0000
这下又对了。楼主新手,想了半天也不知道这中间问题在哪,求大神帮忙啊!
2013年12月21日 04点12分 1
level 5
好好经济 楼主
求助啊求助啊,不会又是单机吧[不高兴]
2013年12月21日 04点12分 2
level 10
我也是新手说的不一定对,第二个x1由于比第一个矩阵小,无法把第一个冲掉,应该加上一个clear all就好了
2013年12月21日 04点12分 3
第二个只能冲掉x1中的4*3的部分
2013年12月21日 04点12分
回复 云封雾 :果然是这样,谢谢啦[真棒]~是不是只要后面的矩阵比前面的小都要用clear all来清理一遍,感觉那样的话矩阵一多就好麻烦的样子
2013年12月21日 05点12分
回复 好好经济 :可以把算法定义成函数,在函数中写入clear all,下回使用直接调用函数就可以
2013年12月21日 08点12分
回复 云封雾 :明白了,谢谢啦。话说你是德国球迷?
2013年12月21日 09点12分
level 1
求教啊,你的matlab在哪儿下载的,我的不能顺利安装,纠结啊[疑问]
2013年12月24日 01点12分 4
1