2009-04-11 56 views
5

Tôi vừa bắt đầu thử nghiệm một cái gì đó với Matlab, và vì tôi quen với giao diện của Vim, tôi cố gắng tránh xa trình soạn thảo của Matlab càng nhiều càng tốt. Điều khiến tôi lo lắng là mỗi lần tôi bắt đầu một tệp .m, nó sẽ trả về giao diện.Matlab trên cmd (winxp)

Có cách nào để bắt đầu test.m từ dòng cmd hay không, và để cho nó xuất ra trên cmd, như thường lệ sẽ làm trong môi trường Matlab. Thứ gì đó giống như "vỏ Matlab" (như của Python, chỉ có Matlab's)?

Trả lời

10

Để trả lời câu hỏi của bạn, hãy bắt đầu matlab như thế này:

matalb -nodesktop -nosplash

này làm việc trên cả Linux và cửa sổ. Trên Linux, bạn gõ lệnh này tại dấu nhắc lệnh, và MATLAB sẽ chạy trong cùng một cửa sổ lệnh trong chế độ văn bản. Vì vậy, bạn sẽ nhận được "vỏ MATLAB" mà bạn muốn. Trên cửa sổ, cd vào thư mục nơi MATLAB được cài đặt, và gõ lệnh tương tự. Nó sẽ mở một cửa sổ dòng lệnh matlab bị tước xuống, không có tất cả các chuông và còi của màn hình nền MATLAB.

Bây giờ theo ý kiến ​​cá nhân của tôi, trình chỉnh sửa MATLAB với trình gỡ rối tích hợp của nó là bạn của bạn. Nó cũng có các ràng buộc khóa emacs, nếu điều đó có ích. Nó cũng dễ dàng hơn để thực hiện lệnh và xem kết quả trong máy tính để bàn MATLAB sau đó khi MATLAB chạy trong chế độ văn bản. Thời gian duy nhất bạn thực sự muốn sử dụng chế độ văn bản là nếu mã MATLAB của bạn mất nhiều thời gian để chạy và bạn chỉ quan tâm đến kết quả cuối cùng. Hoặc nếu bạn đang chạy nhiều phiên bản của MATLAB. Chế độ văn bản mất nhiều bộ nhớ hơn, và trên linux bạn có thể dễ dàng bắt đầu chạy từ dòng lệnh và đặt nó vào nền.

Thực tế, hãy kiểm tra các đối số dòng lệnh cho MATLAB. Bạn có thể làm những điều thú vị khác, như có MATLAB thực hiện một chức năng duy nhất và thoát, một la perl, hoặc chuyển hướng một kịch bản vào MATLAB như thế này: matlab < script.m

0

On môi trường Linux, Matlab có thể được bắt đầu trong chế độ văn bản

matlab -nosplash -nodesktop 

nhưng điều này không hoạt động trên Windows. khởi động nó trong trình bao hiện tại. Trên Windows, thao tác này sẽ mở ra một cửa sổ văn bản mới. Tôi biết không có cách nào để làm cho nó chạy bên trong giao diện điều khiển hiện tại trên Windows.

Có thể bạn có thể đính kèm theo cách nào đó để chạy ứng dụng trong http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/matlabwindows .shtml & http://www.google.com/search?rlz=1C1GGLS_enUS302US311 & sourceid = chrome & tức là = UTF-8 & q = matlab + command + line + windows '> chế độ máy chủ tự động hóa.

Một tùy chọn khác nếu bạn thực sự tuyệt vọng có thể là tạo một máy ảo và cài đặt linux trong đó. Sau đó, tôi tưởng tượng có những cách để cấu hình vim để làm việc độc đáo với Matlab (Tôi là một người emacs những ngày này và có những giải pháp cho emacs).

+0

có, nó hoạt động trên cửa sổ. Nó sẽ mở ra một cửa sổ lệnh MATLAB đơn giản. – Dima

5

Bạn có thực sự sẵn sàng làm công việc nhà phát triển không có trình gỡ rối tệp m không? Dường như với tôi rằng sẽ giới hạn bạn đến các chương trình thực tế tầm thường. Sau một đường cong học tập rất ngắn, tôi nghĩ bạn sẽ tìm thấy trình gỡ lỗi tích hợp Matlab để trở nên tuyệt vời (và tôi là một người VS).

Nếu bạn khăng khăng làm như vậy, lựa chọn tốt nhất của bạn là biên dịch các tệp m của bạn để có thể chạy được một mình. Điều đó sẽ yêu cầu quyền truy cập vào (không rẻ) matlab compiler.

Lưu ý rằng có sự khác biệt đáng kể giữa trình biên dịch được phân phối với phiên bản MATLAB lên đến 6.5 và các phiên bản được phân phối với MATLAB 7+ (không biết số phiên bản trình biên dịch). Trong 6.5, trình biên dịch tạo ra mã c, có thể được chỉnh sửa và biên dịch riêng biệt. Từ 7 trở đi, trình biên dịch không biên dịch, chuyển đổi hay tạo mã cho vấn đề đó: chạy chương trình 'biên dịch' ngày hôm nay thực tế chạy nó trên máy ảo Matlab gọi là MCR - bao gồm hầu hết tất cả chức năng MATLAB. Nó là một một lớn - MCR cài đặt (trình cài đặt!) Trọng 130M thời gian qua tôi đã kiểm tra.
Một số cuộc tranh luận về điều này vẫn có thể được tìm thấy trên các nhóm tin, nhưng điều đó không quan trọng bây giờ. Trong thực tế, cách tiếp cận MCR có vẻ gần hơn với những gì bạn tìm kiếm.

Và btw, đối với tôi matlab -nosplash -nodesktop hoạt động hoàn hảo trên cửa sổ - nó sẽ khởi động MATLAB là một giao diện điều khiển, nhưng điều đó sẽ mất cả hai bạn của một soạn thảo văn bản một trình gỡ lỗi ...

2

gì tôi sẽ làm là:

  1. Bắt đầu MATLAB
  2. Đừng mở.tập tin m trong matlab
  3. Mở tập tin trong trình soạn thảo của bạn lựa chọn
  4. Chạy chức năng từ bên trong MATLAB như thường lệ

Tôi không thể tưởng tượng bất cứ lý do tại sao điều này sẽ không làm việc như MATLAB không nên quan tâm những gì đã được sử dụng để chỉnh sửa các tập tin.

Điều này sẽ không cung cấp cho bạn một "trình bao", nhưng toàn bộ GUI, nhưng tôi không thể nghĩ ra bất kỳ lý do nào bạn không muốn có điều đó, nếu nó có sẵn.

+1

Bạn có thể không muốn toàn bộ GUI nếu bạn có máy tính chậm. – Dima

0

Tôi đã có cùng một vấn đề như Kigurai. Tôi cần thiết để lái xe Matlab với Python vì vậy tôi tìm thấy giải pháp này:

Trong Python:

import os 

os.chdir('W:\\monrépertoire') 

os.spawnl(os.P_NOWAIT, 'monscript.bat') 

Trong monscript.bat:

matlab.exe -r interp_3D -nodesktop –nosplash 
0

Có những trường hợp khi thực sự không có nhiều gỡ lỗi là cần thiết và trạng thái của Matlab phải được giữ nguyên giữa các lời gọi. Một (ví dụ duy nhất?) Sẽ là Emacs org-mode. nó có thể được sử dụng để viết văn bản xen kẽ với mã theo literate programming etc. Mặc dù có thể sử dụng các nhận xét trong Matlab và publish code có thể là HTML hoặc LaTeX, tuy nhiên nó yêu cầu để lại sự thoải mái của Emacs.

standalone program available sử dụng công cụ Matlab để đánh giá các lệnh nhận được trên stdin và kết xuất kết quả. Tuy nhiên, phiên bản cụ thể này thiếu hỗ trợ cho các lệnh đa dòng như if/else/end hoặc for/end. Đây là giới hạn của engEvalString hy vọng mọi thứ cùng một lúc. Có một số ugly workaround available làm cho nó usable đủ cho chế độ org.

#+begin_src matlab :session *MATLAB* :exports none :cache no :results value 
if 3>1 
'wow!!!' 
end 
#+end_src 

#+RESULTS: 
: wow!!!