g=zeros(6);i=1;j=1;
while i<7
for j=1:6
g(i,j)=1/(i+j-1); end
i=i+1;
end;
format rat
g
结果显示没问题。若我用另一种方法写如下:
g=zeros(6);i=1;j=1;
while i<7
while j<7
g(i,j)=1/(i+j-1); j=j+1;end
i=i+1;
end;
format rat
g
结果显示为
g =
1 1/2 1/3 1/4 1/5 1/6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
不知到是什么原因?另外请问matlab中可以用大括号吗?如何依次识别并且结束多个循环体?
说明白的话可以额外加分奥。
那么在matlab中的{ }是什么用呢?谢谢
追答在matlab里面,大括号用得不多,很多人甚至从来没用过,我也绝少使用,所以你大可不必为此烦恼。等到要用的时候再看不迟。
我个人用得最多的地方还是把一个矩阵分成几块cell,然后调用,如:a = cell(m, n) ; a{1} = a(1,1);
但实际上,大括号用处很多。具体的你可以搜索一下“matlab 大括号”,如末尾的参考资料就是我找到的一个相关介绍的网页。
参考资料:http://group.sciencenet.cn/home.php?mod=space&uid=436588&do=blog&id=316907
请问在matlab中prod函数是干什么的呢?比如 while prod(1:n)<=1e100是什么意思?希望您尽量说得详细一些,谢谢。除此之外我们知道prod可以用来求矩阵的每一行的积prod(A,1)或者每一列的积prod(A,2).
追答prod 是连乘
prod(1:n)<=1e100
相当于n!即n的阶乘小于10的100次方
X = [0 1 2
3 4 5]
prod(X,1) is [0 4 10] ==[ 0*3 1*4 2*5]
prod(X,2) is [ 0 =0*1*2
60] =3*4*5