MATLAB tìm kiếm các tệp m trên đường dẫn tìm kiếm, bạn có thể hiển thị nó bằng cách sử dụng lệnh path
. Nếu bạn có nhiều tệp m với cùng tên cơ sở (tức là phần tên tệp trước phần mở rộng, loại trừ các thư mục) trên đường dẫn MATLAB thì MATLAB chỉ có thể thực thi một tệp đến trước trên đường dẫn.
Bạn có thể sử dụng các chức năng addpath
và rmpath
để tự động sửa đổi đường dẫn. Ví dụ: bạn có thể tự động thêm các thư mục có liên quan tự động vào tập lệnh chạy thử nghiệm của mình. Lưu ý rằng addpath
thêm đường dẫn mới vào đầu danh sách đường dẫn, đảm bảo rằng đường dẫn này được ưu tiên hơn các mục nhập hiện tại.
Một cách khác để ngăn xung đột tên như thế này là packages.
EDIT: Để chuyển đổi một thư mục vào một gói, làm như sau:
- Thêm một
+
vào đầu tên của nó.
- Đảm bảo bạn đặt cha mẹ của thư mục lên đường dẫn MATLAB.
- Cập nhật tất cả các cuộc gọi đến các chức năng trong gói bằng cách thêm
packagename.
cho chúng hoặc bằng cách bao gồm nội dung gói trước cuộc gọi (import packagename.*
).
Nói chung tôi muốn các gói để sửa đổi đường dẫn động hơn, vì chúng dễ sử dụng hơn. Lưu ý rằng bạn có thể lồng các gói (ví dụ: my_matlab_files/+mypkg/+nested/foo.m
).
Nguồn
2013-04-11 05:58:14
Kiểm tra [this] (http://www.mathworks.se/matlabcentral/newsreader/view_thread/254911) và [this] (http://compgroups.net/comp.soft-sys.matlab/files-shadowing-themselves -case-of-direc/866751) thảo luận. Tôi cũng đã gặp lỗi này nhưng tôi không nhớ những gì tôi đã làm để giải quyết nó. Có lẽ bạn có thể lập trình thay đổi đường dẫn bên trong mã. Hoặc kiểm tra từ thư mục mà tệp đang chạy bằng cách nhập 'which' –
Về cập nhật của bạn: Thông báo lỗi là về tên của các tập lệnh thử nghiệm có vẻ giống nhau. Vì vậy, đó là một cái gì đó bạn cần phải sửa chữa đầu tiên.Sau đó, bạn cần kiểm tra xem lược đồ đặt tên của bạn cho các hạt nhân có đưa ra các vấn đề tương tự hay không. –