Fortran中的數(shù)組課件_第1頁(yè)
Fortran中的數(shù)組課件_第2頁(yè)
Fortran中的數(shù)組課件_第3頁(yè)
Fortran中的數(shù)組課件_第4頁(yè)
Fortran中的數(shù)組課件_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Fortran中的數(shù)組數(shù)組是Fortran語(yǔ)言中功能最為強(qiáng)大、運(yùn)用最為靈活的一種數(shù)據(jù)結(jié)構(gòu)。數(shù)組(ARRAY)在科學(xué)和工程計(jì)算中通常用來(lái)表示矩陣和向量。同一般的變數(shù)聲明相比,數(shù)組能夠同時(shí)保存多個(gè)數(shù)據(jù)。它是一種使用大規(guī)模數(shù)據(jù)的方法。配合Fortran語(yǔ)言中的數(shù)組操作,可用於對(duì)大量不同的數(shù)據(jù)進(jìn)行處理。在存儲(chǔ)結(jié)構(gòu)上,數(shù)組佔(zhàn)用一片連續(xù)的存儲(chǔ)單元。程式中通過數(shù)組索引來(lái)對(duì)數(shù)組元素、片斷進(jìn)行操作。9.1數(shù)組的定義要在程式中使用數(shù)組,需要首先在變數(shù)聲明中進(jìn)行數(shù)組定義。數(shù)組定義規(guī)定了數(shù)組的維數(shù)和大小,以及數(shù)組所能保存的數(shù)據(jù)類型。在程式中,通過數(shù)組引用來(lái)對(duì)數(shù)組、數(shù)組元素或者數(shù)組片斷進(jìn)行操作。數(shù)組是類型相同、種別一致的一組變數(shù)的有序集合。它可以是整型、實(shí)型、雙精度型、複型、邏輯型、字元型以及自定義類型等中的任意一種。組成數(shù)組的每一個(gè)變數(shù)被稱為數(shù)組元素,並由唯一的下標(biāo)來(lái)進(jìn)行標(biāo)識(shí)。數(shù)組定義說明了數(shù)組所能保存的數(shù)據(jù)類型、數(shù)組的維數(shù)、維的範(fàn)圍和數(shù)組的大小。本節(jié)主要介紹Fortran中數(shù)組定義的幾種方式。9.1.1定義形式一第一種數(shù)組定義形式的語(yǔ)法格式如下所示。類型說明[::]數(shù)組名([下標(biāo)下界:]下標(biāo)上界[,…])[,…]該定義形式通過類型說明來(lái)顯式聲明數(shù)組的數(shù)據(jù)類型,並通過下標(biāo)下界和下標(biāo)上界來(lái)規(guī)定數(shù)組中某一維的範(fàn)圍。下標(biāo)下界和下標(biāo)上界共同組成了維說明符。當(dāng)維說明符省略下標(biāo)下界時(shí),默認(rèn)所在維的下標(biāo)從1開始。如下代碼都是合法的數(shù)組定義。REAL::A(1:2,2:4)INTEGERB(10)9.1.2定義形式二第二種數(shù)組定義形式的語(yǔ)法格式如下所示。DIMENSION[::]數(shù)組名([下標(biāo)下界:]下標(biāo)上界[,…])[,…][類型說明[::]數(shù)組名[,…]]該定義形式通過DIMENSION語(yǔ)句來(lái)進(jìn)行數(shù)組的定義,通過下標(biāo)下界和下標(biāo)上界來(lái)規(guī)定數(shù)組中某一維的範(fàn)圍。在第二行通過類型說明來(lái)顯式聲明數(shù)組的數(shù)據(jù)類型。當(dāng)省略類型說明時(shí),採(cǎi)用默認(rèn)的“I-N”規(guī)則來(lái)對(duì)數(shù)組的數(shù)據(jù)類型進(jìn)行定義。如下代碼合法的對(duì)數(shù)組進(jìn)行了定義。DIMENSION::A(10),B(2:11)INTEGER::A9.1.3定義形式三第三種數(shù)組定義形式的語(yǔ)法格式如下所示。DIMENSION([下標(biāo)下界:]下標(biāo)上界[,…])[::]數(shù)組名[,…][類型說明[::]數(shù)組名[,…]]該定義形式通過DIMENSION語(yǔ)句直接說明了數(shù)組的維數(shù)和維的範(fàn)圍。這種形式定義的數(shù)組全部具有相同的維數(shù)和大小。如下代碼表示了如何採(cǎi)用上述形式進(jìn)行數(shù)組的定義。DIMENSION(10,4:10)::A,B,NINTEGER::AREAL(8)::N9.1.4定義形式四第四種數(shù)組定義形式的語(yǔ)法格式如下所示。[類型說明,]DIMENSION[::]數(shù)組名([下標(biāo)下界:]下標(biāo)上界[,…])[,…][類型說明,]DIMENSION([下標(biāo)下界:]下標(biāo)上界[,…])[::]數(shù)組名[,…]該定義形式可以說是前三種定義形式的綜合形式。通過在DIMENSION語(yǔ)句前引入類型說明來(lái)顯式的說明數(shù)組的數(shù)據(jù)類型。下列代碼演示了此種形式的數(shù)組定義。REAL,DIMENSION::I(10),M(10,5)INTEGER,DIMENSION(10)::A,C9.1.5數(shù)組定義的特點(diǎn)上述數(shù)組定義的形式中,中括弧內(nèi)的部分可有可無(wú)。數(shù)組定義語(yǔ)句必須出現(xiàn)在所有可執(zhí)行語(yǔ)句之前。除了上述基本的定義形式外,在Fortran77中可以使用COMMON語(yǔ)句,在Fortran90中可以用POINTER語(yǔ)句、ALLOCATABLE語(yǔ)句等對(duì)數(shù)組定義進(jìn)行加強(qiáng)。在前面所述的四種定義形式中,定義形式因簡(jiǎn)潔直觀而常見於實(shí)際使用中。此外,如下問題是在實(shí)際編程中應(yīng)該注意的。在前面所述的數(shù)組定義中,I(10)、M(10,5)、A、C等稱為數(shù)組說明符。在同一個(gè)說明語(yǔ)句中有多個(gè)數(shù)組說明符時(shí),用逗號(hào)進(jìn)行分隔。數(shù)組說明符中的I、M、A、C等是數(shù)組名,其取名規(guī)則與變數(shù)相同並且不應(yīng)與程式中的其他變數(shù)同名。在同一個(gè)程式單元中,一個(gè)數(shù)組名只允許定義一次,不能重複定義。例如下麵的數(shù)組定義是錯(cuò)誤的。INTEGER::A(10),A(10,20)9.2數(shù)組的引用方式數(shù)組經(jīng)過定義之後,就可以在程式中使用了。在Fortran77標(biāo)準(zhǔn)中,數(shù)組只允許在輸入輸出語(yǔ)句中進(jìn)行整體操作。在其他場(chǎng)合,只能對(duì)數(shù)組的元素通過下標(biāo)索引的方式逐個(gè)進(jìn)行操作。到了Fortran90標(biāo)準(zhǔn),這一限制被大大放寬了。數(shù)組除了能夠進(jìn)行整體操作以外,還能對(duì)數(shù)組中的片斷和數(shù)組的整體進(jìn)行操作。這進(jìn)一步增強(qiáng)了Fortran語(yǔ)言在數(shù)值處理方面的能力。Fortran中數(shù)組的引用方式可以概括為以下幾種:9.2.1引用數(shù)組元素引用數(shù)組元素的語(yǔ)法格式如下所示。數(shù)組名(下標(biāo),……)這種引用方式通過下標(biāo)索引來(lái)對(duì)數(shù)組中的每一個(gè)元素進(jìn)行操作。它是Fortran中最為傳統(tǒng)的一種引用方式。採(cǎi)用這種方式進(jìn)行引用時(shí),下標(biāo)的值不能超出數(shù)組定義時(shí)的下標(biāo)上下界。目前市面上絕大部分的Fortran編譯器都會(huì)提供在編譯時(shí)進(jìn)行數(shù)組下標(biāo)越界檢查的功能。而其他電腦語(yǔ)言的編譯器,如C/C++編譯器往往不提供這樣的功能,需要程式員自行檢查代碼中是否存在數(shù)組越界的行為。9.2.2引用數(shù)組整體引用數(shù)組整體的語(yǔ)法格式如下所示。數(shù)組名這種引用方式通過數(shù)組名來(lái)對(duì)數(shù)組進(jìn)行整體操作。這種引用方式是Fortan90中新增的,大大提高了程式編寫的靈活性和簡(jiǎn)單性。我們對(duì)前一個(gè)例程TEST0901進(jìn)行修改,通過整體引用來(lái)對(duì)數(shù)組進(jìn)行賦值。TEST0902.F90!引用數(shù)組整體的範(fàn)例PROGRAMTEST0902IMPLICITNONE!變數(shù)定義

REAL::A,B(5,5)READ(*,*)A!數(shù)組整體引用

B=AENDPROGRAMTEST09029.2.3引用數(shù)組片斷引用數(shù)組片斷的語(yǔ)法格式如下所示。數(shù)組名(下標(biāo)範(fàn)圍,……)在這種引用方式中,數(shù)組中的元素可以用過數(shù)組片斷來(lái)進(jìn)行引用。當(dāng)需要給數(shù)組中的不同片斷的元素賦予不同數(shù)值時(shí),這種引用方式非常方便。來(lái)看下麵一個(gè)例子。TEST0903.F90!引用數(shù)組片斷的範(fàn)例PROGRAMTEST0903IMPLICITNONE!變數(shù)定義

REAL::A1,A2,A3,A4,A5,B(5,5)READ(*,*)A1,A2,A3,A4,A5!數(shù)組片斷的引用

B(1,1:5)=A1B(2,1:5)=A2B(3,1:5)=A3B(4,1:5)=A4B(5,1:5)=A5ENDPROGRAMTEST09039.3數(shù)組的存儲(chǔ)儘管在Fortran語(yǔ)言中,允許程式員聲明維數(shù)高達(dá)7維的數(shù)組來(lái)使用,但是電腦的記憶體卻只是一維的。所以不管聲明的數(shù)組有幾維,數(shù)組在內(nèi)存中都是以一維的方式來(lái)進(jìn)行存儲(chǔ)。數(shù)組中元素在電腦內(nèi)的存儲(chǔ)順序同時(shí)也被用作輸入/輸出時(shí)確定其中的元素?cái)?shù)據(jù)在進(jìn)行操作時(shí)的先後順序。9.3.1數(shù)組的存儲(chǔ)結(jié)構(gòu)Fortran中,一維數(shù)組在電腦記憶體中的存儲(chǔ)是最簡(jiǎn)單的一種情況。在邏輯結(jié)構(gòu)上,一維數(shù)組可以看成是由一系列數(shù)組元素組成的一個(gè)單列數(shù)據(jù)表。數(shù)組中每個(gè)元素的下標(biāo)就確定了此元素在數(shù)據(jù)表中的位置。下標(biāo)越小,在數(shù)據(jù)表中的位置就越靠前。在電腦記憶體中,一維數(shù)組佔(zhàn)據(jù)一片連續(xù)的存儲(chǔ)單元,單個(gè)元素在內(nèi)存中的位置就是其邏輯結(jié)構(gòu)中的位置。9.3.2數(shù)組存儲(chǔ)結(jié)構(gòu)的應(yīng)用目前的電腦硬體體系結(jié)構(gòu)決定了在讀取大批量數(shù)據(jù)時(shí),如果這一批數(shù)據(jù)都位於臨近的記憶體中時(shí),讀取操作會(huì)執(zhí)行得較快。在編寫程式時(shí),如果想要提高執(zhí)行效率,就應(yīng)該對(duì)數(shù)據(jù)在計(jì)算中的保存方式和讀取方式有一定的瞭解。只有瞭解了數(shù)據(jù)在計(jì)算內(nèi)的存儲(chǔ)結(jié)構(gòu),才能在編寫程式的時(shí)候做到有的放矢。這樣編寫出來(lái)的程式在數(shù)據(jù)的存取效率上才能較高。需要注意的是,儘管Fortran中的數(shù)組是按“列元素優(yōu)先”的規(guī)則進(jìn)行存儲(chǔ)的,但是C語(yǔ)言中的數(shù)組則是按照“行元素優(yōu)先”的原則進(jìn)行存儲(chǔ),並且C語(yǔ)言中數(shù)組的下標(biāo)下界固定是從0開始的。在編寫相關(guān)的程式時(shí),應(yīng)該注意到這一差別。Fortran語(yǔ)言中,使用DO迴圈進(jìn)行高效率數(shù)組操作的代碼寫法可能在C語(yǔ)言中恰恰是最低效的。比如下麵的程式段在Fortran中能夠得到較好的執(zhí)行效率:DOJ=1,5DOI=1,3Sum=Sum+A(I,J)ENDDO9.4數(shù)組的類型根據(jù)數(shù)組在定義時(shí)的特徵,比如數(shù)組的秩、數(shù)組的形狀和每一維的大小,可以將數(shù)組劃分為好幾種類型。這些不同類型的數(shù)組在程式單元中如何使用?在哪些程式單元中使用?有什麼特點(diǎn)?本節(jié)將針對(duì)這些問題進(jìn)行逐一介紹。9.4.1顯形數(shù)組顯形(Explicit-shape)數(shù)組是Fortran中最簡(jiǎn)單、最容易理解的一種數(shù)組類型。顧名思義,這種類型的數(shù)組在定義階段就通過數(shù)組定義語(yǔ)句明確的規(guī)定了所有特徵,比如數(shù)組的秩、數(shù)組的維數(shù)、每一維的長(zhǎng)度和上下界。通過這種方式定義的數(shù)組具有確定的形狀和大小,在程式運(yùn)行過程中不允許再對(duì)數(shù)組的任何特徵進(jìn)行改變。需要注意的是,在顯形數(shù)組的維說明中,還允許使用整型變數(shù)或整型運(yùn)算式來(lái)定義維的上下界。這涉及到兩種特殊的顯形數(shù)組,會(huì)在隨後的小節(jié)中進(jìn)行介紹。9.4.2特殊的顯形數(shù)組——自動(dòng)數(shù)組自動(dòng)數(shù)組(AutomaticArray)是顯形數(shù)組的一種特殊形式,這種形式的顯形數(shù)組只能是過程中的局部變數(shù)。使用自動(dòng)數(shù)組時(shí)最好在過程中加以聲明,並且數(shù)組中至少有一維的上下界是不確定的整型變數(shù)或整型運(yùn)算式。在調(diào)用過程時(shí),自動(dòng)數(shù)組中不確定的上下界首先通過整型變數(shù)或整型運(yùn)算式求出。這樣,整型變數(shù)或整型運(yùn)算式的值在過程中發(fā)生的變化,就不會(huì)影響到數(shù)組中的上下界。9.4.3特殊的顯形數(shù)組——可調(diào)數(shù)組可調(diào)數(shù)組(AdjustableArray)也是顯形數(shù)組的一種特殊形式,這種類型的顯形數(shù)組只能是過程中的一個(gè)啞元。可調(diào)數(shù)組中至少有一維的上下界不是常數(shù),這個(gè)維的上下界只有當(dāng)過程被調(diào)用時(shí)才能最終確定。並且該維的上下界運(yùn)算式中的整型變數(shù)可以是通過過程傳遞的啞元,也可以是通過COMMON語(yǔ)句中傳遞的整型常量或變數(shù)。和自動(dòng)數(shù)組類似,過程內(nèi)部對(duì)維界參數(shù)的賦值不會(huì)改變數(shù)組中該維的上下界。9.4.4顯形數(shù)組的不足顯形數(shù)組是數(shù)組應(yīng)用的基礎(chǔ),其中的自動(dòng)數(shù)組和可調(diào)數(shù)組能夠提供非常靈活的數(shù)組應(yīng)用。比如自動(dòng)數(shù)組在處理具體數(shù)量未知的大筆數(shù)組數(shù)據(jù)時(shí),能夠提供相當(dāng)好的解決方案。但是有一點(diǎn)需要注意,由於自動(dòng)數(shù)組和可調(diào)數(shù)組都是通過過程來(lái)使用的,因此過程的一些特點(diǎn)也會(huì)影響到這兩種數(shù)組的使用。比如使用自動(dòng)數(shù)組時(shí),過程在電腦中的堆疊限制會(huì)妨礙可使用的自動(dòng)數(shù)組的大小。這種情況可以通過在執(zhí)行TEST0906時(shí),將變數(shù)I設(shè)置成一個(gè)大數(shù)(比如100000)來(lái)觀察到,此時(shí)螢?zāi)簧系牧杏≠Y訊如下:InputthevalueofI:100000forrtl:severe(170):ProgramException-stackoverflowImagePCRoutineLineSourceTEST0307.exe004011DBUnknownUnknown

UnknownTEST0307.exe0040110AUnknownUnknown

UnknownTEST0307.exe0043FCD9UnknownUnknown

UnknownTEST0307.exe00428FF9UnknownUnknown

Unknownkernel32.dll7C816FD7UnknownUnknown

Unknown

Incrementallylinkedimage--PCcorrelationdisabled.9.4.5假定形狀數(shù)組假定形狀(Assumed-shape)數(shù)組是一種在過程中使用的特殊類型數(shù)組,這種類型的數(shù)組借助過程中的啞元從實(shí)際傳遞到過程中的數(shù)組獲得自身的形狀參數(shù)。假定形狀數(shù)組的秩由數(shù)組定義中冒號(hào)“:”的個(gè)數(shù)來(lái)決定,其一般形式如下:類型聲明數(shù)組名([下界]:[,[下界]:]...)如果在定義時(shí)不指定維的下界值,則默認(rèn)這一維的下界值為1。維的上界值等於過程調(diào)用中實(shí)參數(shù)組對(duì)應(yīng)維的長(zhǎng)度加上定義中規(guī)定的下界值再減去1。假定形狀數(shù)組與可調(diào)數(shù)組的區(qū)別非常細(xì)微:可調(diào)數(shù)組是一種顯型數(shù)組,在定義時(shí)必須指定維的上界(儘管這個(gè)上界可以是變數(shù)或運(yùn)算式);而假定形狀數(shù)組在定義時(shí)是不能指定維的上界的。來(lái)看這樣一個(gè)代碼段:SUBROUTINEASSUMEDSHAPE(A)REALA(:,:,:)……ENDSUBROUTINEASSUMEDSHAPE9.4.6假定大小數(shù)組假定大?。ˋssumed-size)數(shù)組也是一種在過程中使用的特殊類型數(shù)組的啞元,這種類型的數(shù)組借助過程中的啞元從實(shí)際傳遞到過程中的數(shù)組來(lái)獲得自身的大小。1.假定大小數(shù)組的定義:假定大小數(shù)組在聲明時(shí),除了最後一維的上界以外,其他所有特徵(比如數(shù)組的秩、維的長(zhǎng)度和維的上下界等)都必須明確指定。聲明假定大小數(shù)組的一般形式如下:類型說明數(shù)組名([維說明符,][維說明符,]...[下界:]*)2.假定大小數(shù)組的應(yīng)用9.4.7延遲形狀數(shù)組延遲形狀(Deferred-shape)數(shù)組是Fortran90/95標(biāo)準(zhǔn)中才開始引入的特殊類型數(shù)組,這種類型的數(shù)組在聲明時(shí)並不制定數(shù)組的維界,具體的維界需要在程式執(zhí)行過程中才能確定。延遲形狀數(shù)組的典型代表就是數(shù)組指針和可分配數(shù)組。聲明延遲形狀數(shù)組時(shí),數(shù)組的秩由冒號(hào)“:”來(lái)確定,但每一維的長(zhǎng)度是未知的。數(shù)組的維界和形狀在程式執(zhí)行過程中給延遲形狀數(shù)組分配存儲(chǔ)空間之後才能決定??煞峙鋽?shù)組可以通過ALLOCATABLE語(yǔ)句、DIMENSION語(yǔ)句、TARGET語(yǔ)句或在類型聲明中使用ALLOCATABLE屬性來(lái)進(jìn)行說明;而數(shù)組指針則由POINT語(yǔ)句或在類型聲明中使用POINTER屬性來(lái)進(jìn)行說明。數(shù)組指針的邊界和形狀通過指針賦值語(yǔ)句指向目標(biāo)之後進(jìn)行確定,或者通過ALLOCATE語(yǔ)句直接進(jìn)行指針的空間分配;而可分配數(shù)組的邊界和形狀則只能通過ALLOCATABEL語(yǔ)句來(lái)進(jìn)行指定。9.5數(shù)組的動(dòng)態(tài)分配所謂數(shù)組的動(dòng)態(tài)分配就是指數(shù)組的大小、形狀等特徵是在程式運(yùn)行中動(dòng)態(tài)的確定,而不是在程式聲明段就確定好了的。數(shù)組的動(dòng)態(tài)分配能給程式設(shè)計(jì)提供更大的靈活性。本節(jié)就將介紹有關(guān)數(shù)組動(dòng)態(tài)分配的有關(guān)內(nèi)容。9.5.1自動(dòng)數(shù)組與可分配數(shù)組從存儲(chǔ)狀態(tài)來(lái)說,數(shù)組可以劃分為靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組兩種。如果數(shù)組是靜態(tài)的,那麼在編譯階段就會(huì)為數(shù)組分配好固定的儲(chǔ)存空間,這些存儲(chǔ)空間在程式執(zhí)行過程中會(huì)一直保留的,直到程式退出時(shí)才會(huì)被釋放。程式運(yùn)行過程中,靜態(tài)數(shù)組的大小不會(huì)發(fā)生改變。靜態(tài)數(shù)組的一個(gè)主要缺陷在於,即使數(shù)組已經(jīng)不再使用,仍然會(huì)佔(zhàn)據(jù)分配給它的記憶體空間,這就造成了系統(tǒng)資源的浪費(fèi)。如果電腦的記憶體資源有限,這會(huì)使得其他程式的可用記憶體資源減少。最嚴(yán)重的情況是可用記憶體資源不足,這將導(dǎo)致程式執(zhí)行錯(cuò)誤。9.5.2可分配數(shù)組的分配與釋放在實(shí)際的程式中,往往會(huì)碰到這樣的問題:一些數(shù)組的大小在程式執(zhí)行之前並不知道具體的大小,只能在程式運(yùn)行的過程中才能確定。那麼如何解決這類問題呢?一個(gè)辦法就是為程式聲明一個(gè)足夠大的數(shù)組,大到將數(shù)據(jù)一股腦全裝進(jìn)去後還有富裕。但是這又會(huì)造成存儲(chǔ)空間的浪費(fèi),在過去386、486的時(shí)代,浪費(fèi)寶貴的記憶體無(wú)疑就是犯罪。另一種辦法就是前面提到過的自動(dòng)數(shù)組,這需要用到過程的概念和良好的程式設(shè)計(jì)結(jié)構(gòu)。如果碰到有些數(shù)組需要作為全局變數(shù)在不同的過程中進(jìn)行處理的情況,就只好採(cǎi)用開一個(gè)大數(shù)組的辦法來(lái)解決。為了更有效的利用電腦中的記憶體,F(xiàn)ortran90/95標(biāo)準(zhǔn)中正是引入了可分配數(shù)組的概念。通過ALLOCATE語(yǔ)句可以動(dòng)態(tài)的創(chuàng)建可分配數(shù)組,使記憶體和對(duì)象可以在程式開始運(yùn)行之後才建立起相互聯(lián)繫。9.5.3可分配數(shù)組的應(yīng)用實(shí)例下麵的代碼實(shí)例演示了可分配數(shù)組在程式中的應(yīng)用,以加深對(duì)可分配數(shù)組的理解。(詳細(xì)內(nèi)容請(qǐng)參照本書)9.6數(shù)組賦值當(dāng)數(shù)組配置好記憶體空間後,可以通過賦值語(yǔ)句或是數(shù)組構(gòu)造器為數(shù)組中的元素進(jìn)行賦值。Fortran語(yǔ)言中,數(shù)組的賦值可以通過賦值語(yǔ)句、DATA語(yǔ)句和數(shù)組構(gòu)造器這三種手段來(lái)進(jìn)行。9.6.1數(shù)組賦值語(yǔ)句首先介紹數(shù)組賦值語(yǔ)句。數(shù)組賦值語(yǔ)句是Fortran90/95標(biāo)準(zhǔn)中新增加的數(shù)組賦值手段。數(shù)組賦值語(yǔ)句的基本形式為:數(shù)組對(duì)象=value其中,數(shù)組對(duì)象代表數(shù)組名或數(shù)組片段,value表示數(shù)組運(yùn)算式或者標(biāo)量。當(dāng)value為數(shù)組運(yùn)算式時(shí),必須和數(shù)組對(duì)象具有相同的形狀(即維數(shù)相同、每維長(zhǎng)度相同,但上下界可以不同);當(dāng)value大小為0或者是長(zhǎng)度為0的字元型變數(shù)時(shí),則沒有值賦給數(shù)組對(duì)象;當(dāng)value為標(biāo)量時(shí),會(huì)把value處理成與數(shù)組對(duì)象相同的形狀,此時(shí)數(shù)組對(duì)象的每個(gè)元素均等於標(biāo)量value的值。數(shù)組運(yùn)算式中允許使用“+”、“-”、“*”、“/”、“**”等內(nèi)部算術(shù)操作符。9.6.2數(shù)組構(gòu)造器數(shù)組構(gòu)造器是由括弧和斜線對(duì)之間的一系列數(shù)值組成,其一般形式為:數(shù)組名=(/取值列表/)其中,取值列表可以是標(biāo)量,隱式DO迴圈或者任意秩的數(shù)組。取值列表中所有數(shù)值的類型都應(yīng)該相同,數(shù)值之間以逗號(hào)分隔。如果取值列表中出現(xiàn)了數(shù)組,則它的值是按“列元素優(yōu)先”的規(guī)則來(lái)賦給目標(biāo)數(shù)組變數(shù)。數(shù)組構(gòu)造器的標(biāo)識(shí)“(/”和“/)”在書寫時(shí)要注意,括弧和撇號(hào)之間不能有空格。下麵來(lái)看一些實(shí)例。MN=(/1,3,5,7,9/) !標(biāo)量表示AB=(/B(2,1:5),B(3:7,7:9)/) !數(shù)組表示CC=(/(I,I=1,4)/) !隱DO迴圈DE=(/10,A(2:7),(I,I=1,4),7/) !混合表示9.6.3DATA語(yǔ)句DATA語(yǔ)句從Fortran77時(shí)代開始就已經(jīng)用於數(shù)組的賦值,只適用於數(shù)組初值的設(shè)置。本小節(jié)將介紹DATA語(yǔ)句進(jìn)行數(shù)組賦值的基本用法。1.DATA語(yǔ)句賦值的特點(diǎn)同前面所述的兩種數(shù)組賦值語(yǔ)句不同的是,DATA語(yǔ)句允許直接對(duì)數(shù)組進(jìn)行部分賦值,但此時(shí)編譯器一般會(huì)給出警告資訊,提示賦值數(shù)量不足。也就是說,在DATA語(yǔ)句中可以不要求數(shù)值的數(shù)量必須與被賦值數(shù)組的數(shù)組元素個(gè)數(shù)相同。被賦值數(shù)組中的數(shù)組元素按照“列元素優(yōu)先”的原則“搶奪”數(shù)據(jù)段中的數(shù)據(jù),一句話:先到先得。2.DATA語(yǔ)句的特殊性DATA語(yǔ)句是一種特殊的說明語(yǔ)句,與普通的說明語(yǔ)句有很大的不同。普通的說明語(yǔ)句必須放在說明段中,也就是必須放在可執(zhí)行語(yǔ)句之前。但是DATA語(yǔ)句允許出現(xiàn)在程式單元結(jié)束語(yǔ)句END前的任意位置。由於DATA語(yǔ)句是在編譯期間就會(huì)執(zhí)行的語(yǔ)句,因此,不管程式中出現(xiàn)多少條DATA語(yǔ)句,也不管DATA語(yǔ)句出現(xiàn)在什麼位置,同一個(gè)變數(shù)在程式執(zhí)行前只允許有一個(gè)值。這個(gè)值以出現(xiàn)在程式中的最後一條DATA語(yǔ)句的賦值為準(zhǔn)。這就是為什麼在本小節(jié)開始說DATA只適用於設(shè)置初值的緣故。9.7數(shù)組的輸入輸出在Fortran語(yǔ)言中,數(shù)組的操作方式非常豐富。其中,對(duì)數(shù)組的輸入/輸出操作即可以使用隱式DO迴圈來(lái)指定要進(jìn)行輸入/輸出的每一維數(shù)組元素的起始位置、終止位置和步長(zhǎng)增量,也可以直接給出要進(jìn)行輸入/輸出的數(shù)組名、數(shù)組元素以及數(shù)組片段。下麵將分別進(jìn)行講解。9.7.1一維數(shù)組的輸入輸出一維數(shù)組的輸入/輸出操作是數(shù)組操作中最簡(jiǎn)單的情況,也是二維、三維乃至更高維數(shù)組輸入/輸出操作的基礎(chǔ)。只要掌握了一維數(shù)組的輸入/輸出操作方法,其他高維數(shù)組的輸入/輸出操作就很容易理解。由於一維數(shù)組在電腦記憶體中進(jìn)行存儲(chǔ)時(shí)是線性排列的,因此輸入/輸出操作時(shí),數(shù)據(jù)是按照數(shù)組給出的下標(biāo)值依次進(jìn)行輸入/輸出的。在對(duì)一維數(shù)組進(jìn)行輸入/輸出操作時(shí),即可以將整個(gè)數(shù)組作為輸入/輸出操作的對(duì)象,也可以只輸入/輸出數(shù)組中的一個(gè)元素、一個(gè)片斷。9.7.2二維數(shù)組的輸入輸出二維數(shù)組輸入/輸出操作的基礎(chǔ)就是一維數(shù)組的輸入/輸出操作,兩者沒有本質(zhì)上的不同。數(shù)組元素輸入/輸出的順序是按照前面提到過的數(shù)組在電腦記憶體中的存儲(chǔ)順序來(lái)進(jìn)行的。由於Fortran語(yǔ)言中數(shù)組的存放順序採(cǎi)用“列元素優(yōu)先”的原則,因此在對(duì)二維數(shù)組進(jìn)行輸入操作是,首先輸入的數(shù)據(jù)被數(shù)組中的第一列元素接收。比如要對(duì)一個(gè)的數(shù)組Array進(jìn)行輸入,輸入語(yǔ)句“READ*,A”按下列順序?qū)?shù)據(jù)讀入給數(shù)組中的每個(gè)元素:Array(1,1)>Array(2,1)>Array(3,1)>Array(1,2)>Array(2,2)>Array(3,2)>Array(1,3)>Array(2,3)>Array(3,3)按“列元素優(yōu)先”的方式進(jìn)行存貯的做法與數(shù)學(xué)上按行進(jìn)行處理的習(xí)慣不太不一致,在進(jìn)行輸入操作應(yīng)該引起足夠的注意。給數(shù)組中各元素賦值時(shí),應(yīng)該先輸入第一列元素的值,再輸入第二列、第三列、……上元素的值,這樣才能確保電腦內(nèi)接收到的矩陣是正確的。9.7.3其他高維數(shù)組的輸入輸出更高維數(shù)組的輸入輸出方式也是以一維數(shù)組的輸入輸出為基礎(chǔ)的。在輸入時(shí),總是最低維上的下標(biāo)值變化最快。例如一個(gè)2X2X2的三維數(shù)組Mx,在使用數(shù)組名進(jìn)行系統(tǒng)默認(rèn)的輸入操作時(shí),讀入數(shù)據(jù)的先後次序如下:Mx(1,1,1)>Mx(2,1,1)>Mx(1,2,1)>Mx(2,2,1)>Mx(1,1,2)>Mx(2,1,2)>Mx(1,2,2)>Mx(2,2,2)如果想要實(shí)現(xiàn)以“行元素優(yōu)先”為規(guī)則進(jìn)行輸入,則需要在輸入語(yǔ)句中交換隱式DO迴圈內(nèi)外層迴圈變數(shù)的方法來(lái)實(shí)現(xiàn)。比如要實(shí)現(xiàn)數(shù)組Mx的“行元素優(yōu)先”原則輸入,則可以使用下麵的輸入語(yǔ)句來(lái)實(shí)現(xiàn):READ*,(((Array(I,J,K),K=1,2),J=1,2),I=1,2)9.8數(shù)組的運(yùn)算數(shù)組之間的運(yùn)算是Fortran語(yǔ)言獨(dú)步數(shù)值計(jì)算領(lǐng)域的一大絕活。當(dāng)其他電腦語(yǔ)言還在使用DO迴圈、for迴圈或是其他形式的迴圈來(lái)為數(shù)組賦初值時(shí),F(xiàn)ortran早已通過數(shù)組的整體賦值完成了這一工作,並開始了對(duì)數(shù)據(jù)的處理。當(dāng)其他電腦語(yǔ)言好容易把一大票數(shù)據(jù)讀入到電腦之後,又開始用DO迴圈、for迴圈或是其他形式的迴圈將剛讀入的兩個(gè)巨型數(shù)組相加、相減以得到結(jié)果時(shí),F(xiàn)ortran早已通過數(shù)組的算術(shù)運(yùn)算完成了這些工作開始輸出結(jié)果了。數(shù)組間的運(yùn)算是Fortran90/95標(biāo)準(zhǔn)中有利於數(shù)值計(jì)算的新手段。在Fortran77時(shí)代,數(shù)組間的運(yùn)算也只能通過迴圈的手段來(lái)實(shí)現(xiàn)。在新的Fortran標(biāo)準(zhǔn)中,允許把整個(gè)數(shù)組或數(shù)組的一部分(即數(shù)組片段)作為一個(gè)獨(dú)立的對(duì)象進(jìn)行相關(guān)的運(yùn)算。前提是進(jìn)行數(shù)組運(yùn)算的兩個(gè)獨(dú)立對(duì)象應(yīng)該是大小相同、形狀一致。在Fortran語(yǔ)言中,允許將數(shù)組或數(shù)組片斷作為運(yùn)算對(duì)象的運(yùn)算符包括:所有的算術(shù)運(yùn)算符(包括“+”、“-”、“*”、“/”、“**”五種)所有的邏輯運(yùn)算符(包括“.AND.”、“.OR.”、“.NOT.”、“.NEQV.”、“.EQV.

”五種)所有的關(guān)係運(yùn)算符(包括“.LT.(<)”、“.LE.(<=)”、“.EQ.(=)”、“.NE.(/=)”“.GT.(>)”、“.GE.(>=)”六種)9.8.1算術(shù)運(yùn)算在數(shù)組的算術(shù)運(yùn)算運(yùn)算式中,允許出現(xiàn)的對(duì)象包括數(shù)組、數(shù)組片斷、數(shù)組元素和標(biāo)量。不同對(duì)象之間的運(yùn)算有自身的特定規(guī)則和行為模式。1.算術(shù)運(yùn)算的規(guī)則如果算術(shù)運(yùn)算符兩側(cè)的運(yùn)算對(duì)象都是數(shù)組或數(shù)組片斷,則要求兩個(gè)數(shù)組或數(shù)組片斷應(yīng)該是大小相同、形狀一致的。運(yùn)算在兩個(gè)數(shù)組或數(shù)組片斷對(duì)應(yīng)位置上的數(shù)組元素間進(jìn)行,保存結(jié)果的數(shù)組或數(shù)組片斷也應(yīng)該和運(yùn)算對(duì)象大小相同、形狀一致。2.算術(shù)運(yùn)算的行為模式9.8.2邏輯運(yùn)算在數(shù)組的邏輯運(yùn)算運(yùn)算式中,允許出現(xiàn)的對(duì)象包括數(shù)組、數(shù)組片斷、數(shù)組元素和標(biāo)量。如果邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象都是數(shù)組或數(shù)組片斷,則要求兩個(gè)數(shù)組或數(shù)組片斷應(yīng)該是大小相同、形狀一致的。運(yùn)算在兩個(gè)數(shù)組或數(shù)組片斷對(duì)應(yīng)位置上的數(shù)組元素間進(jìn)行,保存結(jié)果的數(shù)組或數(shù)組片斷也應(yīng)該和運(yùn)算對(duì)象大小相同、形狀一致。如果邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象一個(gè)是數(shù)組或數(shù)組片斷,另一個(gè)是數(shù)組元素或標(biāo)量,則運(yùn)算在數(shù)組或數(shù)組片斷與數(shù)組元素或標(biāo)量之間進(jìn)行。保存結(jié)果的數(shù)組或數(shù)組片斷應(yīng)該與參與運(yùn)算的數(shù)組或數(shù)組片斷大小相同、形狀一致。9.8.3關(guān)係運(yùn)算數(shù)組之間的關(guān)係運(yùn)算在運(yùn)算對(duì)象、運(yùn)算規(guī)律上與數(shù)組的算術(shù)運(yùn)算和邏輯運(yùn)算沒什麼兩樣。假設(shè)數(shù)組A用於保存運(yùn)算結(jié)果,數(shù)組B是雙目關(guān)係運(yùn)算中的一個(gè)運(yùn)算對(duì)象,C是另一個(gè)運(yùn)算對(duì)象(可以是數(shù)組,也可以是可用於關(guān)係運(yùn)算的其他標(biāo)量),符號(hào)“&”表示任意一種關(guān)係運(yùn)算符。則語(yǔ)句“A=B&C”類似於執(zhí)行表所示的操作:數(shù)組的關(guān)係運(yùn)算操作當(dāng)C為數(shù)組時(shí)當(dāng)C為標(biāo)量時(shí)DOJ=1,NDOI=1,MA(I,J)=B(I,J)&C(I,J)ENDDOENDDODOJ=1,NDOI=1,MA(I,J)=B(I,J)&CENDDOENDDO9.9常用內(nèi)在函數(shù)Fortran語(yǔ)言中的內(nèi)在函數(shù)通常都可以接受數(shù)組作為參數(shù)來(lái)進(jìn)行運(yùn)算,此外還有一些專用的函數(shù)適用於處理數(shù)組所特有的運(yùn)算。本節(jié)就將介紹這些內(nèi)在函數(shù)在數(shù)組領(lǐng)域的應(yīng)用。9.9.1內(nèi)部基本函數(shù)在Fortran語(yǔ)言的數(shù)組運(yùn)算式中,允許將數(shù)組作為內(nèi)部基本函數(shù)的參數(shù)。此時(shí),內(nèi)部基本函數(shù)的函數(shù)值就是一個(gè)同參數(shù)數(shù)組形狀相同的數(shù)組,它的每個(gè)位置上的元素值就是被運(yùn)算元組對(duì)應(yīng)位置上的數(shù)組元素取該基本函數(shù)所得的值。例如數(shù)組A和B都是形狀相同的一維數(shù)組,則語(yǔ)句B=SQRT(A)的執(zhí)行結(jié)果可以表示如下:9.9.2矩陣乘積函數(shù)該函數(shù)的作用是執(zhí)行數(shù)值型或邏輯型數(shù)組A與B的矩陣乘法。函數(shù)的原型為:C=MATMUL(A,B)使用時(shí),數(shù)組A和B必須是秩為1或2(也就是一維或二維)的數(shù)值型或邏輯型的有值數(shù)組,且數(shù)組A和B中至少有一個(gè)的秩為2。傳入矩陣乘積函數(shù)的數(shù)組A與B的類型必須相同。數(shù)組A與B的矩陣乘積規(guī)則和結(jié)果與數(shù)學(xué)上的矩陣乘法定義一致,也就是說數(shù)組A的最後一維的長(zhǎng)度必須和數(shù)組B的第一維的長(zhǎng)度相同。結(jié)果數(shù)組C的秩和形狀取決於參數(shù)數(shù)組的秩和形狀:如果A的形狀為(n,m),B的形狀為(m,k),則結(jié)果數(shù)組C的秩為2,形狀為(n,k)。如果A的形狀為(m),B的形狀為(m,k),則結(jié)果數(shù)組C的秩為1,形狀為(k)。如果A的形狀為(n,m),B的形狀為(m),則結(jié)果數(shù)組C的秩為1,形狀為(n)。9.9.3向量點(diǎn)乘函數(shù)該函數(shù)的作用是執(zhí)行數(shù)值型或邏輯型數(shù)組A與B的點(diǎn)積乘法。函數(shù)的原型為:C=DOT_PRODUCT(A,B)使用時(shí),數(shù)組A和B必須是秩為1(即數(shù)學(xué)上所說的向量,也即一維數(shù)組)的數(shù)值型或邏輯型的有值數(shù)組,且數(shù)組A與B的類型必須相同。一維數(shù)組A與B點(diǎn)乘的結(jié)果是標(biāo)量,函數(shù)的點(diǎn)乘規(guī)則和結(jié)果值與數(shù)學(xué)上的定義相同。如果一維數(shù)組A和B中有一個(gè)的長(zhǎng)度為0,且數(shù)組為數(shù)值型數(shù)組,則結(jié)果為0;如果數(shù)組為邏輯型數(shù)組,則結(jié)果為.FALSE.。例如DOT_PRODUCT((/1,2,3/),(/3,4,5/))的結(jié)果為26,計(jì)算過程為(1x3)+(2x4)+(3x5))=26。9.9.4元素求和函數(shù)元素求和函數(shù)屬於數(shù)組規(guī)約函數(shù)中的一種。數(shù)組規(guī)約函數(shù)是一組功能類似的數(shù)組函數(shù)的統(tǒng)稱。這組函數(shù)的主要作用就是沿著數(shù)組中的某一維,對(duì)在遮罩運(yùn)算式中值為.TRUE.的所有數(shù)組元素進(jìn)行某種操作。這組函數(shù)包括SUM、PRODUCT、MAXVAL、MINVAL、COUNT、ANY和ALL函數(shù)。本節(jié)將主要介紹其中的兩種。元素求和函數(shù)的主要作用是沿著數(shù)組中的某一維,對(duì)在遮罩運(yùn)算式中值為.TRUE.的所有元素求和。函數(shù)的原型為:C=SUM(A[,DIM][,MASK])9.9.5元素連乘求積函數(shù)該函數(shù)的主要作用是沿著數(shù)組中的某一維,對(duì)在遮罩運(yùn)算式中值為.TRUE.的所有數(shù)組元素求連乘積。函數(shù)的原型為:C=PRODUCT(A[,DIM][,MASK])其中的注意事項(xiàng)和說明同元素求和函數(shù)。下麵是一些實(shí)例。比如數(shù)組A=(/2,4,6/),則PRODUCT(A)的值是48;又如PRODUCT(B,MASK=B<0.0)表示對(duì)數(shù)組B中的所有小於0的元素求連乘積。同元素求和函數(shù)一樣,結(jié)果C是數(shù)組還是標(biāo)量也取決於函數(shù)中維的定義和被求積數(shù)組A的大小和形狀。比如數(shù)組A(2,3)=(/2,3,4,5,6,7/),則PRODUCT(A,DIM=1)的值是[(2×3=6),(4×5=20),(6×7=42)];SUM(A,DIM=2)的值是[(2×4×6=48),(3×5×7=105)]。9.9.6數(shù)組大小查詢函數(shù)該函數(shù)是數(shù)組查詢函數(shù)中的一種。數(shù)組查詢函數(shù)一組功能類似於數(shù)組函數(shù)的統(tǒng)稱。這組函數(shù)包括:SIZE、SHAPE、ALLOCATED、LBOUND和UBOUND函數(shù)。這裏只介紹其中的兩種:數(shù)組大小查詢函數(shù)和數(shù)組形狀查詢函數(shù)。數(shù)組大小查詢函數(shù)的作用是求數(shù)組沿著某一維的長(zhǎng)度或者數(shù)組元素的總數(shù)目。函數(shù)原型為:C=SIZE(A[,DIM])其中A是被查詢數(shù)組,可以是假定大小數(shù)組,但不能是未定義的指針數(shù)組或未分配空間的可分配數(shù)組。當(dāng)DIM等於1時(shí),表示查詢數(shù)組有幾行;當(dāng)DIM等於2時(shí),表示查詢數(shù)組有幾列;當(dāng)DIM被省略時(shí),表示查詢數(shù)組有多大(即有多少個(gè)元素)。9.9.7數(shù)組形狀查詢函數(shù)該函數(shù)的功能就是求數(shù)組或標(biāo)量的形狀。函數(shù)的原型為:C=SHAPE(A)其中,A表示被查詢對(duì)象,可以是標(biāo)量或數(shù)組,但不能是假定大小數(shù)組、未定義的指針或未分配空間的可分配數(shù)組;C保存查詢結(jié)果,是一個(gè)一維整型數(shù)組。比如SHAPE(2)將返回一個(gè)零長(zhǎng)度一維數(shù)組;如果對(duì)數(shù)組B(-2:5,9:10)進(jìn)行查詢,則SHAPE(B)將返回一維數(shù)組(8,2)。9.9.8數(shù)組合並函數(shù)數(shù)組合並函數(shù)是數(shù)組構(gòu)造函數(shù)中的一種。數(shù)組構(gòu)造函數(shù)也是一系列功能相似的函數(shù)的總稱,它們用於從已有數(shù)組的元素構(gòu)造出新數(shù)組。這組函數(shù)包括:MERGE、PACK,UNPACK和SPREAD函數(shù)。數(shù)組合並函數(shù)的只要用途就是在遮罩運(yùn)算式的控制下,對(duì)兩個(gè)獨(dú)立數(shù)組進(jìn)行合併操作。該函數(shù)的原型為:C=MERGE(TSOURCE,FSOURCE,MASK)其中,TSOURCE可以是任意類型的數(shù)組或標(biāo)量,F(xiàn)SOURCE是必須與TSOURCE具有相同的類型和類型參數(shù)的數(shù)組或標(biāo)量。遮罩運(yùn)算式MASK必須是邏輯型數(shù)組;若MASK值為真,則結(jié)果是TSOURCE,若MASK值為假,則結(jié)果是FSOURCE。9.9.9數(shù)組壓縮函數(shù):該函數(shù)的作用就是在遮罩運(yùn)算式的控制下,將數(shù)組壓縮成向量數(shù)組。數(shù)組的原型為:C=PACK(A,MASK[,VECTOR])A表示被壓縮對(duì)象,可是任意類型的數(shù)組;遮罩運(yùn)算式MASK必須是邏輯型數(shù)組,並且與數(shù)組A相容(也就是形狀相同);VECTOR是可選參數(shù),必須為向量數(shù)組,並且與數(shù)組A具有相同的類型和類型參數(shù)。結(jié)果C是秩為1的數(shù)組(就是一維數(shù)組),其類型和類型參數(shù)與數(shù)組A相同。若VECTOR存在,則結(jié)果C的大小等於VECTOR的大小,否則其大小是使遮罩運(yùn)算式MASK值為真的元素的個(gè)數(shù);若遮罩運(yùn)算式MASK為標(biāo)量並且值為真,則結(jié)果C的大小與數(shù)組A相同。結(jié)果C中的值按數(shù)組中的元素位置排序,數(shù)組A中的第i個(gè)元素對(duì)應(yīng)於遮罩運(yùn)算式MASK的第i個(gè)為真元素。若VECTOR存在,且大小大n於符合條件的數(shù)組A中的元素個(gè)數(shù)t,則結(jié)果C中第i個(gè)元素值為VECTOR(i),i=t+1,…,n。9.9.10數(shù)組形狀擴(kuò)展和重構(gòu)形函數(shù)這是一個(gè)由兩個(gè)函數(shù)組成的函數(shù)族,包括SPREAD函數(shù)與RESHAPE函數(shù),用於完成數(shù)組形狀重構(gòu)和擴(kuò)展的任務(wù)。SPREAD函數(shù)的主要功能就是將數(shù)組沿著某一維的方向拷貝規(guī)定次數(shù)後擴(kuò)展成一個(gè)新的數(shù)組。函數(shù)的原型為:C=SPREAD(A,DIM,NCOPIES)其中,A為被拷貝對(duì)象,可以是標(biāo)量或任意類型的數(shù)組。當(dāng)DIM等於1時(shí),表示沿著第一維下標(biāo)變化的方向擴(kuò)展,也稱為向下擴(kuò)展;當(dāng)DIM等於2時(shí),表示沿著第二維下標(biāo)變化方向擴(kuò)展,也稱為向右擴(kuò)展。NCOPIES用於指定拷貝的次數(shù)。9.9.11數(shù)組轉(zhuǎn)置函數(shù)數(shù)組轉(zhuǎn)置函數(shù)是數(shù)組運(yùn)算函數(shù)中的一種。數(shù)組運(yùn)算函數(shù)是數(shù)組函數(shù)中同矩陣運(yùn)算相關(guān)的一組函數(shù)的總稱,這組函數(shù)包括:TRANSPOSE、EOSHIFT和CSHIFT三個(gè)函數(shù)。數(shù)組轉(zhuǎn)置函數(shù)的用途就是對(duì)秩為2的數(shù)組(就是二維數(shù)組)進(jìn)行轉(zhuǎn)置操作。函數(shù)的原型為:C=TRANSPOSE(MATRIX)其中,數(shù)組MATRIX必須是一個(gè)二維數(shù)組。轉(zhuǎn)置後的結(jié)果數(shù)組C的形狀正好與數(shù)組MATRIX的形狀相反。也就是說MATRIX(n,m)轉(zhuǎn)置後的結(jié)果為C(m,n)。9.9.12去端移動(dòng)函數(shù)該函數(shù)的作用是對(duì)秩為1的數(shù)組作去端移位處理,或

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論