2013-02-27 26 views
6

Tôi có một số ít tập lệnh và dữ liệu trong các thư mục khác nhau và tôi thường sử dụng các đường dẫn tương đối addpath và tương đối. Vấn đề của tôi là, điều này chỉ hoạt động nếu thư mục hiện tại của tôi là nơi mà kịch bản mà tôi thực hiện được đặt. Ví dụ, nếu tôi thực thi kịch bản A thêm đường dẫn X và sau đó thực thi tập lệnh B nằm trong đường dẫn X, Matlab không tự động thay đổi thư mục và đường dẫn tương đối được chỉ định trong tập lệnh B không hoạt động nữa.MATLAB: Đặt thư mục hiện tại thành locaton của tập lệnh

Có cách nào để tự động đặt thư mục hiện tại của tôi về vị trí của tập lệnh mà tôi đang thực thi không?

/chỉnh sửa: Tôi nên lưu ý rằng tôi sử dụng các tập lệnh này trên các máy tính khác nhau có tên ổ đĩa khác nhau, vì vậy việc sử dụng đường dẫn tuyệt đối có thể sẽ không hữu ích.

Trả lời

9

Đặt dòng sau trong kịch bản, nó sẽ thiết lập các thư mục directory = kịch bản hiện tại

cd(fileparts(mfilename('fullpath'))) 
+2

này không thực sự làm việc. : -/'Lỗi khi sử dụng cd Không thể CD thành D: \ [rút gọn] \ phân tích \ chính (Tên không tồn tại hoặc không phải là thư mục) .'' main.m' là tên của tập lệnh, 'phân tích' tên của thư mục tôi muốn CD. Làm thế nào tôi có thể loại bỏ 'main'?/edit: Tìm thấy nó bằng cách googling giải pháp của bạn, cảm ơn cho các từ khóa cần thiết: 'cd (fileparts (mfilename ('fullpath')))' hiện các trick. –

+2

oh thực sự, tốt hơn là tìm kiếm dấu gạch chéo và trang trí, tôi sẽ chỉnh sửa câu trả lời – zamazalotta

Các vấn đề liên quan