我正在使用fortran 90,並且希望計算出現數量時,兩個數字出現在數組中。如何計算fortran中矩陣中的數字的出現?
flag=0
q=0
do k=1,ncolumns
if (conn(m,k)==i .and. conn(m,k)==l) flag=1
enddo
if (flag==1) q=q+1
write (*,*) q
這裏,conn(m,k)是矩陣,由m行和k列組成。我想讀conn(m,k),並計算當conn(m,k)中包含數字i和l時發生的次數。我知道上面的代碼不會工作,因爲它只打印出0,因爲如果循環有問題。但我不能用'.or'。因爲我希望計數當我和l都包含在conn(m,k)中時。我如何檢查數字我和我是否包含在conn?
我修改了上面像
ncolumns=2
flag=0
q=0
do k=1,ncolumns
!!!if (conn(m,k)==i .and. conn(m,k)==l) flag=1
if (((conn(m,1)==i).and.(conn(m,2)==l)).or.((conn(m,1)==l).and.(conn(m,2)==i))) flag=1
enddo
if (flag==1) q=q+1
write (*,*) q
也能正常工作的代碼,但你可以看到,這個代碼是荒謬的,因爲我需要手動定義K,特別是當「ncolumns」是龐大的數字。我如何用索引來做到這一點?
同樣,如何檢查2個或更多的具體數字是否包含在矩陣中,例如fortran中的conn(m,k)?謝謝。
@HighPerformanceMark第一種可以更緊密。 'conn'是一個矩陣,我想知道'conn'有多少行同時有2個或更多的數字,比如3和12。並計算它的發生。例如,如果conn中有3行共有兩個元素(如3和12),則打印的q應該是3. – exsonic01 2014-11-05 16:43:05
@HighPerformanceMark第二個示例代碼的'ncolumns = 2'就是示例。實際上,conn是巨大的矩陣。它是5000行×15列的矩陣,由衆多的數據塊組成 – exsonic01 2014-11-05 16:48:45