2012-02-23 78 views
-1

我有一个嵌套循环的程序。我想每个循环之后的所有值完毕,如何将循环数据存储在单个数组或矩阵中?

被存储在一个矩阵A或阵列A

显示应该是这样

A= value1 
    value2 
    value3 
    etc... 

其中值1,值2,值3是答案在每个循环的最后。

这里是程序

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 

需要这个ASAP的..谢谢:)

回答

0

您需要提供的信息哪些变量来存储结果数组A的,只是供你参考:

A = [A; new_value]; 

你总是可以很容易地通过追加值,它10

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

+0

我需要将时间和abs(p(1))值存储在数组/矩阵,以便我可以将其导出到文本/ excel文件以供进一步分析。在每个循环结束时,我得到一个时间值和一个abs(p(1))值。但是当我尝试导出时,只能看到最后一个值。其余的数据不会被导出。正如我所说,使用'A = [A; – user1214357 2012-02-23 07:25:09

+0

时间abs(p(1))];'在'p = polyfit(...)'之后的外循环内 – tim 2012-02-24 07:02:37

相关问题