s=2;
k=4;
p1=0.1;
q1=1-p1;
p2=0.3;
q2=1-p2;
r1=0.4;
s1=1-r1;
r2=0.2;
s2=1-r2;
%----------------------构造元胞数组--------------------------------%
j=s+k+1;
C=cell(j);
%----------------------用零元素填充元胞数组--------------------------%
for m=1:s+1
for n=1:s+1
C(m,n)={zeros(m,n)};
for n=(s+2):(s+k+1)
C(m,n)={zeros(m,s+1)};
end
end
end
for m=(s+2):(s+k+1)
for n=1:(s+k+1)
C(m,n)=C(s+1,n);
end
end
C;
% celldisp(C);
%-----------------------用对应概率覆盖元胞数组相应的零元素---------------%
for i=0:s
A=zeros(i+1,1);
for j=0:i
A(j+1,1)=q1*r1^(i-j)*q2*r2^j;
end
A;
end
请问这个程序中想让循环得到的三个A矩阵分别赋值给元胞数组的三个元素C{1,1},C{2,1},C{3,1}的话,应该怎么写呢?
谢谢您的解答,但是加上语句 C{i+1,1}=A;后
只能把得到的第一个A矩阵赋给了C{1,1},但是C{2,1},C{3,1}的值没有改变啊,
也就是C{i+1,1}=A;没有循环啊,
请问怎么办呢?
急需解答!
你的A是变化的,应为你的A矩阵中的值与i有关系,
for j=0:i
A(j+1,1)=q1*r1^(i-j)*q2*r2^j;
end
每循环一次,A的值就是不同的值,怎么会是你说的C{2,1},C{3,1}的值没有改变啊,