GNU Octave

Screenshot Software:
GNU Octave
Mga detalye ng Software:
Bersyon: 4.4.0 Na-update
I-upload ang petsa: 22 Jun 18
Nag-develop: John W. Eaton
Lisensya: Libre
Katanyagan: 262

Rating: 2.7/5 (Total Votes: 3)

GNU Octave ay isang bukas na mapagkukunan at malayang ipinamamahagi ng proyektong software ng command-line na naglalayong makapagbigay ng isang malakas, madaling gamitin at maaring magagamit na mataas na antas na wika na maaaring magamit para sa paghawak ng mga numerical computations .


Maaaring gamitin sa numerical na malutas ang mga problema sa linear at nonlinear

Ang software ay maaaring gamitin upang ang numerical na malutas ang parehong mga linear at nonlinear na mga problema, pati na rin upang magsagawa ng iba't ibang mga eksperimento sa bilang. Ito ay katugma sa Matlab, isang multi-paradigm numerical computing na kapaligiran, at maaaring magamit bilang batch-oriented na wika.

Sa karagdagan, nag-aalok ang GNU Octave ng iba't ibang mga kagamitan na nagbibigay-daan sa iyo upang malutas ang mga karaniwang problema sa numerong linera algebra, pagmamanipula ng mga polynomial, pagsamahin ang mga ordinaryong function, tuklasin ang mga ugat ng nonlinear equation, at pagsamahin ang ordinaryong kaugalian-algebraic at differential equation.

Maaari mong gamitin ang mga module ng dynamic na load o mga function na tinukoy ng gumagamit upang mapalawak ang GNU Octave. Ang mga ito ay maaaring nakasulat sa sariling wika ng programming Octave & rsquo; s sa C, C ++, Fortran, atbp.

Pagsisimula sa GNU Octave

Dalawang pamamaraan ay magagamit para sa pag-install ng GNU Octave sa isang operating system ng GNU / Linux. Ang una ay ang pinakamadaling at nagsasangkot ng paghahanap sa & ldquo; octave & rdquo; pakete sa app ng Software Center (hal. Synaptic Package Manager) ng iyong pamamahagi.

Ang ikalawang paraan ay tutulong sa iyo na i-install ang pinakabagong bersyon ng produkto, ngunit ito ay nagsasangkot ng pagpapatupad ng mga utos sa isang terminal emulator. Kung ikaw ay may na, i-download ang pinakabagong pakete ng pinagmulan mula sa Softoware o mula sa opisyal na homepage ng proyekto (tingnan ang link sa dulo ng artikulo), i-save ito sa iyong PC at i-unpack ito.

Buksan ang isang terminal emulator app, patakbuhin ang & lsquo; cd & rsquo; command na sinusundan ng landas sa lokasyon ng nakuha na mga file ng archive (hal. cd / home /softoware/octave-3.8.2), patakbuhin ang & lsquo; ./ configure & amp; & amp; gumawa ng & rsquo; utos upang i-configure at i-compile ang programa, at pagkatapos ay patakbuhin ang & lsquo; sudo gumawa i-install & rsquo; command na i-install ito. Gamitin ito mula sa interface ng command-line sa pamamagitan ng pagpapatakbo ng & lsquo; octave & rsquo; utos.

Sa ilalim ng hood

Sa pagtingin sa ilalim ng hood ng programa ng GNU Octave, mapapansin natin na ito ay ganap na nakasulat sa C ++ programming language. Na-install namin ito sa ilang mga distribusyon ng GNU / Linux, kabilang ang Arch Linux at Ubuntu gamit ang pagtuturo na ibinigay sa seksyon sa itaas. Ang software ay tugma sa mga 32-bit at 64-bit na mga platform ng computer.

Ano ang bago sa paglabas na ito:

  • Isa ng pinakamalaking mga bagong tampok para sa Octave 3.8.x release series ay isang graphical user interface. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).

Ano ang bagong sa bersyon:

  • Isa sa mga pinakamalaking mga bagong tampok para sa Octave 3.8.x release series ay isang graphical user interface. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).

Ano ang bago sa bersyon 4.2.0:

  • Ang isa sa mga pinakamalaking mga bagong tampok para sa Octave 3.8.x release series ay isang graphical na interface ng gumagamit. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).

Ano ang bago sa bersyon 4.0.3:

  • Ang isa sa mga pinakamalaking mga bagong tampok para sa Octave 3.8.x release series ay isang graphical na interface ng gumagamit. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).

Ano ang bago sa bersyon 4.0.1:

  • Ang isa sa mga pinakamalaking mga bagong tampok para sa Octave 3.8.x release series ay isang graphical na interface ng gumagamit. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).

Ano ang bago sa bersyon 4.0.0:

  • Ang isa sa mga pinakamalaking mga bagong tampok para sa Octave 3.8.x release series ay isang graphical na interface ng gumagamit. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).

Ano ang bago sa bersyon 3.8.2:

  • Ang isa sa mga pinakamalaking mga bagong tampok para sa Octave 3.8.x release series ay isang graphical na interface ng gumagamit. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).

Ano ang bago sa bersyon 3.8.0:

  • Isa sa mga pinakamalaking mga bagong tampok para sa Octave 3.8 ay isang graphical na interface ng gumagamit. Ito ang isang bagay na madalas na hiniling ng mga gumagamit sa nakalipas na ilang taon at ngayon ay halos handa na. Subalit dahil hindi ito lubos na pinakintab hangga't gusto namin, napagpasyahan naming maghintay hanggang sa 4.0.x release serye bago gawin ang GUI ang default na interface (hanggang pagkatapos, maaari mong gamitin ang --force-gui na pagpipilian upang simulan ang GUI ).
  • Dahil sa haba ng oras at ang bilang ng mga pag-aayos ng bug at mga pagpapabuti mula noong huling major release na Octave, nagpasya din kami laban sa pagpapaliban sa pagpapalabas ng lahat ng mga bagong pagpapahusay na mas mahaba para lamang mapakinabangan ang GUI. Kaya mangyaring tamasahin ang 3.8 release ng Octave at ang preview ng bagong GUI. Naniniwala kami na ito ay mahusay na gumagana, ngunit alam din namin na mayroong ilang mga halata magaspang na spot at maraming mga bagay na maaaring mapabuti.

Ano ang bago sa bersyon 3.4.0:

  • Ang BLAS at LAPACK na mga aklatan ay kinakailangan na bumuo ng Octave. Ang subset ng sanggunian ng BLAS at LAPACK ay inalis mula sa mga mapagkukunang Octave.
  • Ang function ng `lookup 'ay pinalawak upang maging mas kapaki-pakinabang para sa pangkalahatang-layunin binary na paghahanap. Gamit ang pagpapabuti na ito, ang function na isulat ay muling isinulat para sa makabuluhang mas mahusay na pagganap.
  • Real, integer at lohikal na matrices, kapag ginamit sa pag-index, ay magse-cache na ngayon sa panloob na halaga ng index_vector (zero-based na mga indeks) kapag matagumpay na ginamit bilang mga indeks, na inaalis ang parusa ng conversion para sa kasunod na pag-index ng parehong matris. Sa partikular, nangangahulugan ito na hindi na ito kinakailangan upang maiwasan ang paulit-ulit na pag-index sa pamamagitan ng lohikal na arrays gamit ang paghahanap para sa mga dahilan ng pagganap.
  • Ang mga lohikal na matrices ay ginagamot na ngayon nang mas mahusay kapag ginamit bilang mga indeks. Ang Octave ay panatilihin ang index bilang isang lohikal na mask maliban kung ang ratio ng mga tunay na elemento ay sapat na maliit, gamit ang isang dalubhasang code. Noong una, ang lahat ng lohikal na matrices ay palaging unang na-convert sa mga vectors sa index. Nagreresulta ito sa mga pagtitipid sa parehong panahon ng memorya at computing.
  • Ang mga function na 'sub2ind' at `ind2sub 'ay muling naipatupad bilang mga naipon na function para sa mas mahusay na pagganap. Ang mga pag-andar na ito ay mas mabilis na ngayon, ay maaaring maghatid ng higit pang mga nakakatipid na mga resulta para sa mga saklaw, at maaaring muling gamitin ang mekanismo ng cache ng index na inilarawan sa nakaraang talata.
  • Ang katumbas na built-in na function sa mga nag-uugnay na mga operator (`plus ',` beses', `mtimes ',` at', at `o ') ay pinalawak upang makatanggap ng maraming argumento. Ito ay lalong kapaki-pakinabang para sa mga summing (pagpaparami, atbp.) Ng mga listahan ng mga bagay (ng posibleng mga natatanging uri):
  • matrix_sum = plus (matrix_list {:});
  • Ang isang uri ng FTP object batay sa libcurl ay naipatupad. Pinapayagan ng mga bagay na ito ang mga koneksyon sa ftp, mga pag-download at upload na pinamamahalaang. Halimbawa,
  • fp = ftp ("ftp.octave.org); cd (fp," gnu / octave "); mget (fp," octave-3.2.3.tar.bz2 " li>
  • Ang default na pag-uugali ng `assert (sinusunod, inaasahan) 'ay nakarelaks na magtrabaho nang mas mahigpit na pagsuri na hindi nangangailangan ng internals ng mga halaga upang tumugma. Naiwasan nito ang mga naunang wastong pagsusulit mula sa pagsira dahil sa mga bagong panloob na klase na ipinakilala sa mga bersyon ng Octave sa hinaharap.
  • Halimbawa, lahat ng mga assertion ay totoo sa Octave 3.0.x ngunit mali sa 3.2.x dahil sa mga bagong optimization at pagpapabuti:
  • (2 * linspace (1, 5, 5), 2 * (1: 5)) igiit (zeros (0, 0), []) (mga (1,5)))
  • Ang pag-uugali ng mga pag-andar sa aklatan `ismatrix ',` parisukat', at `issymmetric 'ay nabago para sa mas mahusay na pagbabago. Ang function na 'ismatrix' ay bumalik na totoo para sa lahat ng numeric, lohikal at karakter na 2-D o N-D matrices. Noong nakaraan, ang `ismatrix 'ay bumalik nang hindi tama kung ang una o ikalawang dimensyon ay zero. Samakatuwid, ang `ismatrix ([]) 'ay hindi totoo, habang ang` ismatrix (zeros (1,2,0))' ay totoo.
  • Ang function ng 'issquare' ay nagbabalik na ngayon ng lohikal na skalar, at katumbas ng expression
  • ismatrix (x) & amp; & amp; ndims (x) == 2 & amp; & amp; mga hilera (x) == mga haligi (x)
  • Ang dimensyon ay hindi na ibinalik. Bilang resulta, ang `issquare ([]) 'ngayon ay totoo. Ang `issymmetric 'na function ngayon ay sumusuri para sa mahusay na proporsyon sa halip na Hermitianness. Para sa huli, ang ishermitian ay nilikha. Gayundin, ang lohikal na skalar ay ibinalik sa halip na ang dimensyon, kaya ang `issymmetric ([]) 'ay totoo na ngayon. Ang mga humahawak sa function ay alam na ngayon ng mga overloaded function. Kung ang isang function ay overloaded, ang hawahan ay tumutukoy sa oras ng reference nito na function na tumawag. Ang isang di-overload na bersyon ay hindi kailangang umiiral.
  • Mga overloading function para sa mga built-in na klase (dobleng, int8, cell, atbp.) ngayon ay magkatugma sa Matlab.
  • Ang mga humahawak sa function ay maaari na ngayong ihambing sa == at! = operator, gayundin ang function na'equal '.
  • Pagganap ng pag-concatenation (gamit ang []) at ang mga function na 'cat', `horzcat ', at` vertcat' ay napabuti para sa mga multidimensional array.
  • Ang operators-assignment operators + =, - =, * = at / = ngayon kumilos nang mas mahusay sa ilang mga kaso. Halimbawa, kung M ay isang matrix at S isang skeilar, pagkatapos ay ang pahayag
  • M + = S;
  • ay gumana sa data ng M sa lugar kung hindi ito ibinahagi ng isa pang variable, kadalasan ay nagdaragdag ng parehong oras at memory na kahusayan. Ang mga napiling mga karaniwang kombinasyon lamang ang apektado, katulad: matrix + = matrix matrix - = matrix matrix. * = Matrix matrix ./= matrix
  • matrix + = scalar matrix - = scalar matrix * = scalar matrix / = scalar
  • lohikal na matrix | = lohikal na matrix lohikal na matrix & amp; = lohikal na matrix
  • kung saan ang matris at skeilar ay kabilang sa parehong klase. Ang kaliwang bahagi ay dapat na isang simpleng variable reference.
  • Bukod pa rito, kapag nangyari ang mga operator ng unary sa mga expression, sisikapin din ni Octave na gawin ang operasyon kung ang argumento ay pansamantalang pahayag.
  • Ang epekto ng mga operator ng paghahambing (, =) na inilapat sa mga kumplikadong numero ay nagbago upang maging pare-pareho sa mahigpit na pag-order na tinukoy ng mga function na `max ',` min', at `sort '. Higit na partikular, ang kumplikadong mga numero ay inihambing sa pamamagitan ng lexicographical paghahambing ng pares `[abs (z), arg (z)] '. Noong nakaraan, ang mga tunay na bahagi lamang ay inihambing; ito ay maaaring trivially nakamit sa pamamagitan ng pambalot ang operands sa real ().
  • Ang awtomatikong pagpapagaan ng mga kumplikadong resulta ng komputasyon ay nagbago. Gagamitin ngayon ng Octave ang anumang kumplikadong numero na may zero na haka-haka na bahagi o anumang kumplikadong matris na may lahat ng mga elemento na may zero na haka-haka na bahagi sa isang tunay na halaga. Noong una, tapos na ito para lamang sa positibong mga zero. Tandaan na ang pag-uugali ng kumplikadong pag-andar ay hindi nagbabago at nagdudulot pa rin ito ng komplikadong halaga kahit na ang haka-haka na bahagi ay zero.
  • Bilang isang side effect ng code refactoring sa liboctave, ang binary na lohikal na operasyon ay mas madali na ngayon sa mga pag-optimize ng compiler at sa gayon ay makabuluhang mas mabilis.
  • Pinapayagan ng Octave ngayon ang mga paraan na tinukoy ng user na 'subsasgn' upang i-optimize ang mga kalabisan na mga kopya. Para sa karagdagang impormasyon, tingnan ang manwal.
  • Mas mahusay na paghawak ng matrix division. Ang Octave ay may kakayahan na pangasiwaan ang mga expression M 'V M.' V V / M
  • (M ay isang matris at V ay isang vector) mas mahusay sa ilang mga kaso. Sa partikular, kung ang M ay tatsulok, ang lahat ng tatlong mga expression ay gagawin ng isang solong tawag sa xTRTRS (mula sa LAPACK), na may angkop na mga flag. Noong nakaraan, ang lahat ng tatlong expression ay nangangailangan ng isang pisikal na transpose ng M.
  • Mas mahusay na paghawak ng ilang mga mixed real-complex na operasyon ng matrix. Halimbawa, kung RM ay isang tunay na matrix at CM isang kumplikadong matris, RM CM
  • maaari na ngayong masuri ang alinman bilang
  • masalimuot (RM real (CM), RM imag (CM))
  • o bilang
  • complex (RM) CM,
  • depende sa dimensyon. Ang unang porma ay nangangailangan ng mas maraming temporaries at pagkopya, ngunit halves ang count count, na karaniwang nagdudulot ng mas mahusay na pagganap kung RM ay may sapat na mga hilera. Dati, ang pangalawang form ay palaging ginagamit.
  • Ang dibisyon ng Matrix ay naiiba rin.
  • Mas mahusay na paghawak ng mga tatsulok na matrix na mga bagay na ibinalik mula sa mga factorizations. Ang mga pag-andar para sa computing QR, LU at Cholesky factorizations ay awtomatikong ibabalik ang mga tatsulok na matrix na bagay na may tamang panloob na matrix_type na hanay, upang hindi na ito kinakalkula kapag ang matrix ay ginagamit para sa dibisyon.
  • Ang function ng built-in na `sum 'ay humahawak na ngayon sa di-katutubong pagbubuod (ibig sabihin, double precision sum ng mga single o integer inputs) nang mas mahusay, pag-iwas sa isang pansamantalang conversion ng buong array ng input sa doubles. Karagdagan pa, ang `sum 'ay maaari na ngayong tumanggap ng dagdag na argumento ng opsyon, gamit ang isang bayad na algorithm sa pagbubuod sa halip na isang matuwid na kabuuan, na makabuluhang nagpapabuti ng katiyakan kung maraming pagkansela ang nangyayari sa kabuuan.

  • Ang function ng built-in na `bsxfun 'ay gumagamit na ngayon ng na-optimize na code para sa mga partikular na kaso kung saan ipinasa ang mga built-in na operasyon ng operator. Ang mga pag-optimize ay ang pag-aalala sa mga operator na` plus', `minus ',` times', `ldivide ' , `rdivide ',` kapangyarihan', `at ',` o' (para sa lohikal na arrays), ang mga operator ng relasyong `eq ',` ne', `lt ',` le', `gt ',` ge', at ang mga function `min 'at` max'. Ang mga pag-optimize ay nalalapat lamang kapag ang parehong mga operand ay nasa parehong built-in na klase. Ang mga pinagsama-samang mga real / complex at solong / dobleng mga operasyon ang unang mag-convert sa parehong mga operand sa karaniwang uri.
  • Ang mga function na 'strfind' at 'strrep' ay pinagsama na ang mga pagpapatupad, na tumutulong sa makabuluhang mas mahusay na paghahanap at pagpapalit sa mga string, lalo na sa mas matagal na mga pattern. Ang code ng `strcat 'ay vectorized at ngayon ay mas mahusay na kapag maraming mga string ay concatenated. Ang mga function na 'strcmpi' at `strncmpi 'ay naka-built-in na mga function na ngayon, na nagbibigay ng mas mahusay na pagganap.
  • Ang estilo ng Matlab na hindi papansin ang mga argumento ng function ng pag-input at output gamit ang tilde (~) ay sinusuportahan na ngayon. Binalewalang ang mga argumento sa output ay maaaring makita mula sa isang function gamit ang built-in na function na 'isargout'. Para sa higit pang mga detalye, kumunsulta sa manual.
  • Ang datatype na listahan, na hindi na ginagamit dahil sa pagpapakilala ng mga cell, ay inalis.
  • Ang pag-iipon ng pag-iipon ay na-optimize at ngayon ay mas mabilis na mas mabilis sa ilang mahahalagang kaso.
  • Ang pag-uugali ng isreal at isnumeric function ay binago upang maging mas Matlab-compatible.
  • Ang integer na matematika & amp; Mga babala ng conversion (Octave: int-convert-nan, Octave: int-convert-non-val, Octave: int-convert-overflow, Octave: int-math-overflow)
  • ang braso at mod ay naka-built-in na mga pag-andar. Sila rin ay humahawak ng mga uri ng integer nang mahusay gamit ang integer aritmetika.
  • Mas kaunti ang muling isinulat na assignment ng hindi gaanong pag-index at index na na-index. Dahil ang Octave ay gumagamit ng naka-compress na haligi imbakan para sa kalat-kalat matrices, pangunahing pansin ay nakatuon sa mga pagpapatakbo ng pagmamanipula ng buong mga haligi. Ang mga operasyong ito ay mas mabilis na ngayon, pati na rin ang ilang iba pang mahahalagang kaso.
  • Dagdag pa, posible na mag-pre-allocate ang isang kalat-kalat na matris at pagkatapos ay punan ito sa pamamagitan ng mga takdang-aralin, sa kondisyon na matugunan nila ang ilang mga kundisyon. Para sa karagdagang impormasyon, kumunsulta sa `spalloc 'function, na kung saan ay hindi na isang lamang dummy. Dahil dito, ang nzmax at nnz ay hindi na laging katumbas sa Octave. Ang oktaba ay maaari ring makabuo ng matrix na may nnz & lt; nzmax bilang isang resulta ng iba pang mga operasyon, kaya dapat mong patuloy na gamitin ang nnz maliban kung gusto mo talagang gamitin ang nzmax (ibig sabihin ang puwang na inilaan para sa mga elemento ng nonzero).
  • Masyadong maapektuhan ang kalat-kalat na pagdudugtong, at ang pagsasama-sama ng kalat-kalat na matrices, lalo na ng mas malaking mga koleksyon, ngayon ay mas epektibo. Nalalapat ito sa parehong [] operator at ang cat / vertcat / horzcat function.
  • Posible na ngayong opsyonal na gamitin ang mga xGESDD LAPACK driver para sa pagkalkula ng singular na halaga ng agnas gamit ang svd (), sa halip ng default na xGESVD, gamit ang pagsasaayos ng svd_driver na pseudo-variable. Ang driver ng xGESDD ay maaaring maging hanggang sa 6x beses na mas mabilis kapag ang mga singular na vectors ay hiniling, ngunit ito ay iniulat na medyo mas malusog sa mga mataas na hindi nakakagulat na mga matrices.
  • Ang mga pseudo-variable na configuration, tulad ng page_screen_output o confirm_recursive_rmdir (o sa nabanggit na svd_driver), ay tumatanggap na ngayon ng opsyong "lokal" bilang pangalawang argument, na humihiling na mabago ang pagbabago kapag nagbalik ang kasalukuyang function: function [status, msg] = rm_rf (dir) confirm_recursive_rmdir (false, "local"); [status, msg] = rmdir (dir, "s"); ... endfunction Sa pagbalik, ang confirm_recursive_rmdir ay ibabalik sa halaga nito sa pagpasok sa function, kahit na mayroong kasunod na pagbabago sa variable sa function na rm_rf o alinman sa mga function na tinatawag nito.
  • ngayon ay tumatanggap ang pkg ng isang -forge na opsyon para sa pag-download at pag-install ng mga pakete mula sa Octave Forge awtomatikong. Halimbawa, awtomatikong i-download ng pkg install -forge general ang pinakabagong release ng pangkalahatang pakete at subukang i-install ito. Walang ibinigay na awtomatikong paglutas ng mga dependency. Dagdag dito,

  • Ang listahan ng pkg -forge ay maaaring gamitin upang ilista ang lahat ng magagamit na mga pakete.
  • ** Ang panloob na representasyon ng data ng structs ay ganap na muling isinusulat upang gumawa ng mga tiyak na pag-optimize na magagawa. Ang data ng patlang ay maaari na ngayong maibahagi sa pagitan ng mga structs na may pantay na mga susi ngunit iba't ibang mga sukat o mga halaga, na ginagawa ang mga pagpapatakbo na mapanatili ang mga patlang nang mas mabilis. Ginagamit na ngayon ang ekonomikong imbakan para sa skalar structs (tulad ng karamihan sa iba pang mga scalar), na ginagawang mas mahusay ang memorya. Ang ilang mga operasyon na katulad ng array sa structs (concatenation, uniform cellfun, num2cell) ay nakakuha ng isang makabuluhang bilis-up. Bukod pa rito, ang octave_scalar_map class na ngayon ay nagbibigay ng isang mas simpleng interface upang gumana sa skalar structs sa loob ng function ng C ++ DLD.
  • ** Dalawang bagong format ang magagamit para sa pagpapakita ng mga numero:
  • format short eng format long eng
  • Parehong mga numero ng pagpapakita sa notasyon sa engineering, hal., mantissa + exponent kung saan ang exponent ay isang maramihang ng 3.
  • ** Ang mga sumusunod na function ay bago sa Octave 3.4:
  • i-save ang erfcx nfields pqpnonneg uigetdir bitpack fileread nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskipl pbaspect repelems uimenu cbrt ifelse pie3 reset whitebg curl ishermitian powerset rsf2csf chop isindex ppder saveas daspect luupdate ppint strread divergence merge ppjumps textread
  • ** Ang paggamit ng pag-andar ng imahe upang tingnan ang mga imahe na may mga panlabas na programa tulad ng display, xv, at xloadimage ay hindi na suportado. Ang function na image_viewer ay inalis din.
  • ** Ang pag-uugali ng mga assignment sa struct sa mga di-struct na mga halaga ay nabago. Noong nakaraan, posibleng ma-overwrite ang isang arbitrary na halaga: a = 1; a.x = 2;
  • Ito ay hindi na posible maliban kung ang isang ay isang walang laman na matrix o cell array.
  • ** Ang dlmread function ay pinalawak upang payagan ang pagtukoy ng isang pasadyang halaga para sa mga patlang na walang laman.
  • ** Ang mga function ng dlmread at dlmwrite ay binago upang tanggapin ang mga ID ng file (tulad ng ibinalik ng fopen) bilang karagdagan sa mga pangalan ng file.
  • ** Maaaring i-optimize ngayon ng oktaba ang overhead ng interpreter ng isang hindi kilalang function handle, kung ang function ay tumatawag lamang ng isa pang function o hawakan sa ilan sa mga parameter nito na nakatali sa ilang mga halaga. Halimbawa: f = @ (x) sum (x, 1);
  • Kapag f ay tinatawag na, ang tawag ay ipapasa sa @sum na may pare-pareho na 1 na nakadugtong, at ang di-kilalang function call ay hindi mangyayari sa tawag na stack.
  • Mga hindi na ginagamit na function.
  • Ang mga sumusunod na pag-andar ay hindi na ginagamit sa Octave 3.2 at tatanggalin mula sa Octave 3.6 (o anumang bersyon ay ang ikalawang pangunahing release pagkatapos ng 3.2):
  • create_set spcholinv splu dmult spcumprod spmax iscommand spcumsum spmin israwcommand spdet spprod lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spinv spvcat spatan2 spkron str2mat spchol splchol unmark_command spchol2inv split unmark_rawcommand
  • Ang mga sumusunod na function ay hindi na ginagamit sa Octave 3.4 at tatanggalin mula sa Octave 3.8 (o anumang bersyon ay ang ikalawang pangunahing release pagkatapos ng 3.4):
  • autocor cellidx gammai krylovb halaga autocov pagpapadala glpkmex replot betai fstat is_global saveimage
  • Para sa pagiging tugma sa Matlab, mu2lin (x) ay katumbas na ngayon sa mu2lin (x, 0).
  • Ang library ng ARPACK ay ipinamamahagi na ngayon sa Octave kaya hindi na ito kailangang maging available bilang panlabas na dependency kapag nagtatayo ng Octave.

Ano ang bago sa bersyon 3.2.3:

  • Octave 3.2.3 ay isang bug-fixing release

Ano ang bago sa bersyon 3.0.4:

  • Octave 3.0.4 ay isang bug-fixing release. Karamihan sa mga bug na iniulat dahil ang release ng bersyon 3.0.3 ay naayos na. Mangyaring tandaan na ang Octave 3.0 ay makabuluhang naiiba mula sa Octave 2.1.x, lalo na tungkol sa mga graphics, paghawak ng landas, at built-in na mga variable.

Katulad na software

Polygen
Polygen

3 Jun 15

clig
clig

3 Jun 15

Invicta
Invicta

2 Jun 15

Iba pang mga software developer ng John W. Eaton

Octave
Octave

2 Jun 15

Mga komento sa GNU Octave

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!