GNU Octave

Phần mềm chụp màn hình:
GNU Octave
Các chi tiết về phần mềm:
Phiên bản: 4.4.0 Cập nhật
Ngày tải lên: 22 Jun 18
Nhà phát triển: John W. Eaton
Giấy phép: Miễn phí
Phổ biến: 262

Rating: 2.7/5 (Total Votes: 3)

GNU Octave là một dự án phần mềm dòng lệnh tự do nguồn mở và được phân phối nhằm cung cấp một ngôn ngữ cấp cao mạnh mẽ, dễ sử dụng và có thể mở rộng có thể được sử dụng để xử lý các tính toán số .


Có thể được sử dụng để giải quyết số lượng các vấn đề tuyến tính và phi tuyến

Phần mềm này có thể được sử dụng để giải toán số cả các vấn đề tuyến tính và phi tuyến, cũng như thực hiện các thí nghiệm số khác nhau. Nó tương thích với Matlab, một môi trường tính toán số nhiều mô hình, và có thể được sử dụng như một ngôn ngữ định hướng theo lô.

Ngoài ra, GNU Octave còn cung cấp các tiện ích khác nhau cho phép bạn giải quyết các vấn đề đại số linera, thao tác đa thức, tích hợp các hàm bình thường, khám phá gốc của phương trình phi tuyến, cũng như tích hợp phương trình vi phân đại số và vi phân thông thường. / p>

Bạn có thể sử dụng các mô đun được tải động hoặc các hàm do người dùng định nghĩa để mở rộng GNU Octave. Chúng có thể được viết bằng ngôn ngữ lập trình của riêng Octave hoặc trong C, C ++, Fortran, v.v.

Bắt đầu với GNU Octave

Hai phương pháp có sẵn để cài đặt GNU Octave trên hệ điều hành GNU / Linux. Cách đầu tiên là dễ nhất và liên quan đến việc tìm kiếm & ldquo; octave & rdquo; trong ứng dụng Trung tâm phần mềm (ví dụ: Trình quản lý gói Synaptic) của bản phân phối của bạn.

Phương pháp thứ hai sẽ giúp bạn cài đặt phiên bản mới nhất của sản phẩm, nhưng nó liên quan đến việc thực hiện các lệnh trong trình giả lập thiết bị đầu cuối. Nếu bạn ngừng hoạt động, hãy tải xuống gói nguồn mới nhất từ ​​Softoware hoặc từ trang chủ chính thức của dự án (xem liên kết ở cuối bài viết), lưu nó trên PC của bạn và giải nén nó.

Mở ứng dụng trình mô phỏng thiết bị đầu cuối, chạy & lsquo; cd & rsquo; lệnh được theo sau bởi đường dẫn đến vị trí của các tệp lưu trữ được trích xuất (ví dụ: cd /home/softoware/octave-3.8.2), chạy & lsquo; ./ configure & amp; & amp; tạo & rsquo; lệnh để cấu hình và biên dịch chương trình, sau đó chạy lệnh & lsquo; sudo make install & rsquo; lệnh để cài đặt nó. Sử dụng nó từ giao diện dòng lệnh bằng cách chạy & lsquo; octave & rsquo; lệnh.

Dưới mui xe

Xem qua chương trình GNU Octave, chúng ta có thể nhận thấy rằng nó được viết hoàn toàn bằng ngôn ngữ lập trình C ++. Chúng tôi đã cài đặt nó trong một số bản phân phối của GNU / Linux, bao gồm cả Arch Linux và Ubuntu bằng cách sử dụng hướng dẫn được cung cấp trong phần trên. Phần mềm tương thích với nền tảng máy tính 32 bit và 64 bit.

Có gì mới trong bản phát hành này:

  • Một các tính năng mới lớn nhất cho loạt phát hành Octave 3.8.x là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).

Tính năng mới trong phiên bản:

  • Một trong những tính năng mới nhất cho loạt phát hành Octave 3.8.x là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).

Tính năng mới trong phiên bản 4.2.0:

  • Một trong những tính năng mới lớn nhất cho loạt phát hành Octave 3.8.x là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).

Tính năng mới trong phiên bản 4.0.3:

  • Một trong những tính năng mới lớn nhất cho loạt phát hành Octave 3.8.x là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).

Tính năng mới trong phiên bản 4.0.1:

  • Một trong những tính năng mới lớn nhất cho loạt phát hành Octave 3.8.x là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).

Tính năng mới trong phiên bản 4.0.0:

  • Một trong những tính năng mới lớn nhất cho loạt phát hành Octave 3.8.x là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).

Tính năng mới trong phiên bản 3.8.2:

  • Một trong những tính năng mới lớn nhất cho loạt phát hành Octave 3.8.x là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).

Tính năng mới trong phiên bản 3.8.0:

  • Một trong những tính năng mới lớn nhất cho Octave 3.8 là giao diện người dùng đồ họa. Đó là một điều mà người dùng đã yêu cầu thường xuyên nhất trong vài năm qua và bây giờ nó gần như đã sẵn sàng. Nhưng vì nó không được đánh bóng như chúng tôi muốn, chúng tôi đã quyết định đợi cho đến khi phiên bản 4.0.x phát hành trước khi tạo giao diện mặc định cho GUI (cho đến lúc đó, bạn có thể sử dụng tùy chọn --force-gui để bắt đầu GUI ).
  • Với khoảng thời gian và số lượng sửa lỗi và cải tiến kể từ bản phát hành chính cuối cùng của Octave, chúng tôi cũng quyết định trì hoãn việc phát hành tất cả các cải tiến mới này nữa để hoàn thiện GUI. Vì vậy, hãy tận hưởng bản phát hành 3.8 của Octave và bản xem trước của GUI mới. Chúng tôi tin rằng nó hoạt động khá tốt, nhưng chúng tôi cũng biết rằng có một số điểm thô rõ ràng và nhiều thứ có thể được cải thiện.

Tính năng mới trong phiên bản 3.4.0:

  • Thư viện BLAS và LAPACK hiện được yêu cầu để xây dựng Octave. Tập hợp con của các thư viện BLAS và LAPACK tham chiếu đã bị xóa khỏi các nguồn Octave.
  • Chức năng 'tra cứu' đã được mở rộng để hữu ích hơn cho tìm kiếm nhị phân có mục đích chung. Sử dụng cải tiến này, hàm ismember được viết lại để có hiệu suất tốt hơn đáng kể.
  • Ma trận thực, số nguyên và logic, khi được sử dụng trong lập chỉ mục, bây giờ sẽ lưu trữ giá trị index_vector nội bộ (chỉ số dựa trên zero) khi sử dụng thành công làm chỉ mục, loại bỏ hình phạt chuyển đổi để lập chỉ mục tiếp theo bởi cùng một ma trận. Đặc biệt, điều này có nghĩa là không còn cần thiết để tránh lập chỉ mục lặp lại bởi các mảng logic bằng cách sử dụng tìm các lý do hiệu suất.
  • Ma trận logic được xử lý hiệu quả hơn khi được sử dụng làm chỉ mục. Octave sẽ giữ cho chỉ mục dưới dạng mặt nạ lô-gic trừ khi tỷ lệ phần tử thực là đủ nhỏ, sử dụng mã chuyên biệt. Trước đây, tất cả các ma trận logic luôn được chuyển đổi thành các vectơ chỉ mục đầu tiên. Điều này dẫn đến tiết kiệm trong cả bộ nhớ và thời gian tính toán.
  • Các hàm `sub2ind 'và` ind2sub' được tái triển khai thành các hàm được biên dịch để có hiệu năng tốt hơn. Các chức năng này hiện nhanh hơn, có thể mang lại nhiều kết quả tiết kiệm hơn cho phạm vi và có thể tái sử dụng cơ chế bộ nhớ cache của chỉ mục được mô tả trong đoạn trước.
  • Các hàm tương đương được tích hợp sẵn cho các toán tử kết hợp (`plus ',` times', `mtimes ',` và', và `hoặc ') đã được mở rộng để chấp nhận nhiều đối số. Điều này đặc biệt hữu ích cho việc tổng hợp (nhân, vv) danh sách các đối tượng (có thể là các kiểu riêng biệt):
  • matrix_sum = plus (ma trận_list {:});
  • Kiểu đối tượng FTP dựa trên libcurl đã được triển khai. Các đối tượng này cho phép quản lý các kết nối ftp, tải xuống và tải lên. Ví dụ:
  • fp = ftp ("ftp.octave.org); cd (fp," gnu / octave "); mget (fp," octave-3.2.3.tar.bz2 "); đóng (fp);
  • Các hành vi mặc định của `khẳng định (quan sát, dự kiến) 'đã được thoải mái để sử dụng kiểm tra nghiêm ngặt hơn mà không yêu cầu nội bộ của các giá trị để phù hợp. Điều này tránh các thử nghiệm hợp lệ trước đó bị vi phạm do các lớp nội bộ mới được giới thiệu trong các phiên bản Octave trong tương lai.
  • Ví dụ: tất cả các xác nhận này đều đúng trong Octave 3.0.x nhưng sai trong 3.2.x do các tối ưu hóa và cải tiến mới:
  • khẳng định (2 * linspace (1, 5, 5), 2 * (1: 5)) khẳng định (số 0 (0, 0), []) khẳng định (2 * số (1, 5), (2) (những người (1,5)))
  • Hành vi của các hàm thư viện `ismatrix ',` issquare' và `issymmetric 'đã được thay đổi để có sự nhất quán tốt hơn. Hàm `ismatrix 'bây giờ trả về true cho tất cả các ma trận số 2, D và ký tự 2-D hoặc N-D. Trước đây, `ismatrix 'trả về false nếu thứ nguyên đầu tiên hoặc thứ hai bằng không. Do đó, `ismatrix ([]) 'là sai, trong khi` ismatrix (số không (1,2,0))' là đúng.
  • Hàm `issquare 'hiện trả về một vô hướng hợp lý và tương đương với biểu thức
  • ismatrix (x) & amp; & amp; ndims (x) == 2 & amp; & amp; hàng (x) == cột (x)
  • Thứ nguyên không còn được trả lại. Kết quả là `issquare ([]) 'bây giờ cho kết quả đúng. Hàm `issymmetric 'bây giờ kiểm tra đối xứng thay vì Hermitianness. Đối với sau này, ishermitian được tạo ra. Ngoài ra, vô hướng hợp lý được trả về thay vì kích thước, do đó, `không đối xứng ([]) 'bây giờ là đúng. Các chức năng xử lý hiện nay nhận thức được các chức năng quá tải. Nếu một hàm bị quá tải, xử lý sẽ xác định tại thời điểm tham chiếu của nó có chức năng gọi. Phiên bản không quá tải không cần phải tồn tại.
  • Các hàm quá tải cho các lớp dựng sẵn (đôi, int8, ô, v.v.) hiện tương thích với Matlab.
  • Xử lý chức năng giờ có thể được so sánh với toán tử == và! =, cũng như hàm `isequal '.
  • Hiệu năng ghép nối (sử dụng []) và các hàm `cat ',` horzcat' và `vertcat 'đã được cải thiện cho các mảng đa chiều.
  • Toán tử gán vận hành + =, - =, * = và / = bây giờ hoạt động hiệu quả hơn trong một số trường hợp nhất định. Ví dụ, nếu M là ma trận và S là vô hướng, thì câu lệnh
  • M + = S;
  • sẽ hoạt động trên dữ liệu của M tại chỗ nếu nó không được chia sẻ bởi một biến khác, thường tăng cả thời gian và hiệu quả bộ nhớ. Chỉ các kết hợp chung được chọn mới bị ảnh hưởng, cụ thể là: ma trận + = ma trận ma trận - = ma trận ma trận. * = Ma trận ma trận ./= ma trận
  • ma trận + = ma trận vô hướng - = ma trận vô hướng * = ma trận vô hướng / = vô hướng
  • ma trận lôgic | = ma trận lôgic hợp lý ma trận & amp; = ma trận lôgic
  • nơi ma trận và vô hướng thuộc cùng một lớp. Phía bên trái phải là một tham chiếu biến đơn giản.
  • Hơn nữa, khi các toán tử đơn nhất xuất hiện trong các biểu thức, Octave cũng sẽ cố gắng thực hiện thao tác tại chỗ nếu đối số của nó là một biểu thức tạm thời.
  • Hiệu ứng của toán tử so sánh (, =) áp dụng cho số phức đã thay đổi để phù hợp với thứ tự nghiêm ngặt được xác định bởi các hàm `max ',` min' và `sort '. Cụ thể hơn, các số phức được so sánh bằng so sánh từ điển của các cặp `[abs (z), arg (z)] '. Trước đây, chỉ có các bộ phận thực được so sánh; điều này có thể được trivially đạt được bằng cách gói các toán hạng trong real ().
  • Việc đơn giản hóa tự động các kết quả tính toán phức tạp đã thay đổi. Octave bây giờ sẽ đơn giản hóa bất kỳ số phức nào với một phần không tưởng tượng hoặc bất kỳ ma trận phức tạp nào với tất cả các phần tử có phần không tưởng tượng với một giá trị thực. Trước đây, điều này chỉ được thực hiện cho các số không dương. Lưu ý rằng hành vi của hàm phức tạp không thay đổi và nó vẫn tạo ra một giá trị phức tạp ngay cả khi phần ảo là số không.
  • Là một tác dụng phụ của việc tái cấu trúc mã trong liboctave, các phép toán logic nhị phân giờ đây dễ dàng hơn để tối ưu hóa trình biên dịch và do đó nhanh hơn đáng kể.
  • Octave bây giờ cho phép các phương thức `subsasgn 'do người dùng định nghĩa để tối ưu hóa các bản sao dự phòng. Để biết thêm thông tin, hãy xem hướng dẫn sử dụng.
  • Xử lý phân chia ma trận hiệu quả hơn. Octave bây giờ có thể xử lý các biểu thức M 'V M.' V V / M
  • (M là ma trận và V là một vectơ) hiệu quả hơn trong một số trường hợp nhất định. Đặc biệt, nếu M là hình tam giác, cả ba biểu thức sẽ được xử lý bằng một cuộc gọi duy nhất tới xTRTRS (từ LAPACK), với các cờ thích hợp. Trước đây, cả ba biểu thức đều yêu cầu chuyển đổi vật lý của M.
  • Xử lý hiệu quả hơn các hoạt động ma trận phức tạp thực sự hỗn hợp nhất định. Ví dụ: nếu RM là ma trận thực và CM là ma trận phức tạp, RM CM
  • hiện có thể được đánh giá là
  • phức tạp (RM thực (CM), RM tưởng tượng (CM))
  • hoặc dưới dạng
  • CM phức tạp (RM),
  • tùy thuộc vào kích thước. Biểu mẫu đầu tiên yêu cầu nhiều thời gian và sao chép hơn, nhưng giảm một nửa số lượng FLOP, thường mang lại hiệu năng tốt hơn nếu RM có đủ hàng. Trước đây, biểu mẫu thứ hai luôn được sử dụng.
  • Phân chia ma trận bị ảnh hưởng tương tự.
  • Xử lý hiệu quả hơn các hệ số ma trận hình tam giác được trả về từ các thừa số. Các chức năng để tính toán các yếu tố QR, LU và Cholesky bây giờ sẽ tự động trả về các hệ số ma trận hình tam giác với bộ matrix_type nội bộ thích hợp, do đó nó sẽ không cần tính toán khi ma trận được sử dụng để phân chia.
  • Hàm `sum 'được tích hợp sẵn xử lý tổng kết không phải bản địa (tức là, tổng chính xác gấp đôi đầu vào đơn hoặc số nguyên) hiệu quả hơn, tránh chuyển đổi tạm thời toàn bộ mảng đầu vào thành gấp đôi. Hơn nữa, `sum 'bây giờ có thể chấp nhận một đối số tùy chọn bổ sung, sử dụng thuật toán tổng hợp bù trừ thay vì tổng hợp đơn giản, giúp cải thiện đáng kể độ chính xác nếu nhiều lần hủy xảy ra trong tổng kết.
  • Hàm bsxfun được tích hợp sẵn bây giờ sử dụng mã được tối ưu hóa cho các trường hợp nhất định khi các toán tử toán tử gắn sẵn được truyền vào. Cụ thể, các tối ưu hóa liên quan đến toán tử `plus ',` minus', `times ',` ldivide' , `rdivide ',` power', `và ',` hoặc' (đối với mảng hợp lý), toán tử quan hệ `eq ',` ne', `lt ',` le', `gt ',` ge' và các hàm `min 'và` max'. Tối ưu hóa chỉ áp dụng khi cả hai toán hạng đều có cùng lớp dựng sẵn. Các hoạt động hỗn hợp / thực / đơn và đôi phức tạp trước tiên sẽ chuyển đổi cả hai toán hạng thành một loại phổ biến.
  • Các hàm `strfind 'và` strrep' hiện đã biên dịch các triển khai, tạo điều kiện tìm kiếm và thay thế hiệu quả hơn đáng kể trong các chuỗi, đặc biệt là với các mẫu dài hơn. Mã của `strcat 'đã được vector hóa và bây giờ hiệu quả hơn nhiều khi nhiều chuỗi được nối. Các hàm `strcmpi 'và` strncmpi' bây giờ là các hàm dựng sẵn, cung cấp hiệu suất tốt hơn.
  • Kiểu Matlab bỏ qua các đối số hàm đầu vào và đầu ra bằng dấu ngã (~) hiện được hỗ trợ. Các đối số đầu ra bị bỏ qua có thể được phát hiện từ một hàm bằng cách sử dụng hàm dựng sẵn `isargout '. Để biết thêm chi tiết, hãy tham khảo hướng dẫn sử dụng.
  • Kiểu dữ liệu danh sách, không được chấp nhận kể từ khi giới thiệu ô, đã bị xóa.
  • Hàm accumarray đã được tối ưu hóa và giờ đây nhanh hơn đáng kể trong một số trường hợp quan trọng nhất định.
  • Hành vi của các hàm isreal và isnumeric đã được thay đổi để tương thích với Matlab hơn.
  • Toán số nguyên & amp; cảnh báo chuyển đổi (Octave: int-convert-nan, Octave: int-chuyển đổi-phi-int-val, Octave: int-conversion-overflow, Octave: int-math-overflow) đã bị xóa.
  • rem và mod giờ đây được tích hợp sẵn chức năng. Họ cũng xử lý các loại số nguyên một cách hiệu quả bằng cách sử dụng số học số nguyên.
  • Chỉ mục thưa thớt và phân bổ chỉ mục đã được viết lại chủ yếu. Kể từ Octave sử dụng lưu trữ cột nén cho ma trận thưa thớt, sự chú ý lớn được dành cho hoạt động thao tác toàn bộ cột. Các hoạt động như vậy giờ đây nhanh hơn đáng kể, cũng như một số trường hợp quan trọng khác.
  • Hơn nữa, bây giờ có thể phân bổ trước một ma trận thưa thớt và sau đó điền vào nó bằng các bài tập, miễn là chúng đáp ứng các điều kiện nhất định. Để biết thêm thông tin, hãy tham khảo hàm `spalloc ', không còn là giả. Do đó, nzmax và nnz không còn luôn bằng nhau trong Octave. Octave cũng có thể tạo ra một ma trận với nnz & lt; nzmax là kết quả của các hoạt động khác, vì vậy bạn nên sử dụng nnz một cách nhất quán trừ khi bạn thực sự muốn sử dụng nzmax (tức là không gian được cấp cho các phần tử không đồng bộ).
  • Kết nối thưa thớt cũng bị ảnh hưởng và ghép các ma trận thưa thớt, đặc biệt là các bộ sưu tập lớn hơn, hiện hiệu quả hơn đáng kể. Điều này áp dụng cho cả toán tử [] và các hàm cat / vertcat / horzcat.
  • Bây giờ có thể tùy ý sử dụng các trình điều khiển xGESDD LAPACK để tính toán phân tích giá trị số ít bằng cách sử dụng svd (), thay vì xGESVD mặc định, bằng cách sử dụng cấu hình biến svd_driver giả. Trình điều khiển xGESDD có thể nhanh hơn gấp 6 lần khi các vectơ số ít được yêu cầu, nhưng được báo cáo là có phần kém mạnh mẽ hơn trên các ma trận có độ điều kiện cao.
  • Cấu hình giả biến, chẳng hạn như page_screen_output hoặc confirm_recursive_rmdir (hoặc svd_driver đã đề cập ở trên), bây giờ chấp nhận tùy chọn "cục bộ" làm đối số thứ hai, yêu cầu thay đổi được hoàn tác khi hàm hiện tại trả về: hàm [status, msg] = rm_rf (dir) confirm_recursive_rmdir (sai, "địa phương"); [trạng thái, msg] = rmdir (dir, "s"); ... endfunction Khi trả về, confirm_recursive_rmdir sẽ được khôi phục về giá trị mà nó có khi nhập vào hàm, ngay cả khi có thay đổi tiếp theo đối với biến trong hàm rm_rf hoặc bất kỳ hàm nào mà nó gọi.
  • pkg giờ đây chấp nhận tùy chọn -forge để tải xuống và cài đặt các gói từ Octave Forge tự động. Ví dụ, pkg install -forge general sẽ tự động tải xuống bản phát hành mới nhất của gói chung và cố gắng cài đặt nó. Không có sự phân giải phụ thuộc tự động nào được cung cấp. Hơn nữa,
  • danh sách pkg -forge có thể được sử dụng để liệt kê tất cả các gói có sẵn.
  • ** Biểu diễn dữ liệu nội bộ của các cấu trúc đã được viết lại hoàn toàn để thực hiện tối ưu hóa nhất định khả thi. Dữ liệu hiện trường có thể được chia sẻ giữa các cấu trúc với các khóa bằng nhau nhưng các thứ nguyên hoặc giá trị khác nhau, làm cho các hoạt động bảo toàn các trường nhanh hơn. Bộ nhớ tiết kiệm được sử dụng cho các cấu trúc vô hướng (giống như hầu hết các vô hướng khác), làm cho việc sử dụng chúng trở nên hiệu quả hơn về bộ nhớ. Một số hoạt động giống như mảng trên các cấu trúc (ghép nối, cellfun đồng nhất, num2cell) đã đạt được tốc độ đáng kể. Ngoài ra, lớp octave_scalar_map giờ đây cung cấp một giao diện đơn giản hơn để làm việc với các cấu trúc vô hướng trong hàm C ++ DLD.
  • ** Hai định dạng mới có sẵn để hiển thị số:
  • định dạng eng eng có định dạng ngắn
  • Cả hai số hiển thị trong ký pháp kỹ thuật, tức là, số mũ + số mũ trong đó số mũ là bội số của 3.
  • ** Các chức năng sau đây là mới trong Octave 3.4:
  • accumdim 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 phân kỳ hợp nhất ppjumps textread
  • ** Sử dụng chức năng hình ảnh để xem hình ảnh với các chương trình bên ngoài như hiển thị, xv và xloadimage không còn được hỗ trợ. Hàm image_viewer cũng đã bị xóa.
  • ** Hành vi của các phép gán struct cho các giá trị không cấu trúc đã được thay đổi. Trước đây, có thể ghi đè lên một giá trị tùy ý: a = 1; a.x = 2;
  • Điều này không còn có thể trừ khi a là một mảng ô hoặc mảng ô trống.
  • ** Chức năng dlmread đã được mở rộng để cho phép chỉ định giá trị tùy chỉnh cho các trường trống.
  • ** Các chức năng dlmread và dlmwrite đã được sửa đổi để chấp nhận ID tệp (như được trả về bởi fopen) ngoài tên tệp.
  • ** Octave bây giờ có thể tối ưu hóa giá trị thông dịch của một hàm xử lý ẩn danh, nếu hàm chỉ đơn giản gọi hàm khác hoặc xử lý với một số tham số của nó được ràng buộc với các giá trị nhất định. Ví dụ: f = @ (x) tổng (x, 1);
  • Khi f được gọi, cuộc gọi được chuyển tiếp đến @sum với hằng số 1 được nối thêm và cuộc gọi chức năng ẩn danh không xảy ra trên ngăn xếp cuộc gọi.
  • Chức năng không được chấp nhận.
  • Các chức năng sau không được dùng nữa trong Octave 3.2 và sẽ bị xóa khỏi Octave 3.6 (hoặc bất kỳ phiên bản nào là bản phát hành chính thứ hai sau 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 chia unmark_rawcommand
  • Các chức năng sau không được dùng nữa trong Octave 3.4 và sẽ bị xóa khỏi Octave 3.8 (hoặc bất kỳ phiên bản nào là bản phát hành chính thứ hai sau 3.4):
  • autocor cellidx gammai krylovb giá trị autocov công văn glpkmex replot betai fstat is_global saveimage
  • Để tương thích với Matlab, mu2lin (x) hiện tương đương với mu2lin (x, 0).
  • Thư viện ARPACK hiện được phân phối bằng Octave để nó không còn cần phải có sẵn dưới dạng phụ thuộc bên ngoài khi xây dựng Octave.

Tính năng mới trong phiên bản 3.2.3:

  • Octave 3.2.3 là bản phát hành sửa lỗi

Tính năng mới trong phiên bản 3.0.4:

  • Octave 3.0.4 là bản phát hành sửa lỗi. Hầu hết các lỗi được báo cáo kể từ khi phiên bản 3.0.3 đã được sửa. Xin lưu ý rằng Octave 3.0 khác biệt đáng kể so với Octave 2.1.x, đặc biệt là đối với đồ họa, xử lý đường dẫn và biến tích hợp.

Phần mềm tương tự

boot
boot

20 Feb 15

Pyastra
Pyastra

3 Jun 15

PL/1 for GCC
PL/1 for GCC

2 Jun 15

Phần mềm khác của nhà phát triển John W. Eaton

Octave
Octave

2 Jun 15

Ý kiến ​​để GNU Octave

Bình luận không
Nhập bình luận
Bật hình ảnh!