如何在单个数组或矩阵中存储循环数据?

时间:2012-02-23 07:06:58

标签: matlab

我有一个嵌套循环的程序。我希望每个循环完成后的所有值都

存储在单个矩阵A或数组A中。

显示应该像

A= value1
   value2
   value3
   etc...

其中value1,value2,value3是每个循环结束时得到的答案。

这是程序

load('b2.txt');

[M,N]=size(b2);

amp=[1.75,2,2.25,2.5,2.75,3,3.25,3.5,3.75,4];


%defining threshold 

m=10501;

for i=10575:75:21000


   a=b2(m:i,:);

   time=b2(i,2)

t=40;

sum1=0;

sum2=0;

sum3=0;

sum4=0;

sum5=0;

sum6=0;

sum7=0;

sum8=0;

sum9=0;

sum10=0;


for R=1:75

    if (a(R,3)>=t) && (a(R,3)<t+5)

        sum1=sum1+a(R,1);

    elseif (a(R,3)>=t+5) && (a(R,3)<t+10)

        sum2=sum2+a(R,1);

    elseif (a(R,3)>=t+10) && (a(R,3)<t+15)

        sum3=sum3+a(R,1);

    elseif (a(R,3)>=t+15) && (a(R,3)<t+20)

        sum4=sum4+a(R,1);

    elseif (a(R,3)>=t+20) && (a(R,3)<t+25)

        sum5=sum5+a(R,1); 

    elseif (a(R,3)>=t+25) && (a(R,3)<t+30)

        sum6=sum6+a(R,1);   

     elseif (a(R,3)>=t+30) && (a(R,3)<t+35)

        sum7=sum7+a(R,1); 

     elseif (a(R,3)>=t+35) && (a(R,3)<t+40)


        sum8=sum8+a(R,1);

     elseif (a(R,3)>=t+40) && (a(R,3)<t+45)

        sum9=sum9+a(R,1); 

     elseif (a(R,3)>=t+45) && (a(R,3)<t+50)

        sum10=sum10+a(R,1);   

    end

cumulative_hits=[sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8,sum9,sum10];

for count=1:10

            if cumulative_hits(1,count)<= 0

            amplitude(1,count)= 0;  

        else

            amplitude(1,count)=amp(1,count);

            end

end

cumulative_hits(cumulative_hits==0)=[];

amplitude(amplitude==0)=[];


        y=log10(cumulative_hits);

        p=polyfit(amplitude,y,1);

        f=polyval(p,amplitude);
end

%disp(p(1,1))

abs(p(1))

m=m+75;


end

需要这个尽快...谢谢:)

1 个答案:

答案 0 :(得分:0)

您需要提供有关在结果数组A中存储哪个变量的信息,但仅供参考:

您可以随时通过以下方式轻松附加值:

A = [A; new_value];

如果new_value是标量,或者它是一个具有相同数量的元素的列向量,如A的列数,则可以工作