请教让n个C组成一个矩阵A输出问题
Ln为一数组,比如Ln=,B=,一共100个0,当Ln取第一个数时,比如20,B中前20个数为1,当Ln取第二个数时,比如40,B中前40个数为1,以此类推,下面是我写的函数,但是有错误,不知道怎么改正。function A=tw;
B=zeros(1,100); C=[]; =size(Ln);
for i=1:n
B(1,1:Ln(i))=1; C(i)=reshape(B,10,10);
end
j=1;
if(j<n)
A=;
end
第七行出错,我想把每次求得的B值以10*10放在C里面,然后让n个C组成一个矩阵A输出,请教高手第七行该怎么写?谢谢
[ 本帖最后由 ChaChing 于 2010-4-15 15:57 编辑 ] help cell 除了friendchj的好建议外, 亦可采用多维, 如
=size(Ln); C=zeros(10,10,n);
for i=1:n
B=zeros(1,100);B(1,1:Ln(i))=1; C(:,:,i)=reshape(B,10,10);
end
j=1;
if(j<n), A=; end
[ 本帖最后由 ChaChing 于 2009-10-22 20:30 编辑 ] 多谢两位!我将程序做了改进:
function A=tw(Ln);
B=zeros(1,100); =size(Ln); C=cell(1,n);
for i=1:n
B(1,1:Ln(i))=1;C{1,i}=reshape(B,10,10);
end
A=cell2mat(C);
但是当n<=3时,结果是正确的,当n值较大时,程序运行有结果,但是是错的,比如
Ln=[ 91 78 60 40 22 9 1 1 9 22 40 60 78 91 99 99];
结果只有C{1,1},C{1,15}和C{1,16}是正确的,中间的都不对,请教一下这是怎么回事?谢谢
应该是for循环出了问题,但是该怎么改呢?望高手指点
[ 本帖最后由 ChaChing 于 2009-10-22 20:37 编辑 ] 个人在3F亦犯相同错误, 未重覆归零:@L
=size(Ln); C=cell(1,n);
for i=1:n
B=zeros(1,100); B(1:Ln(i))=1; C{i}=reshape(B,10,10);
end
A=cell2mat(C);
[ 本帖最后由 ChaChing 于 2009-10-22 20:38 编辑 ] Thanks,ChaChing!
页:
[1]