2009-05-12 24 views
6

Tôi đang cố chạy chương trình thử nghiệm ban đầu trên Matlab 6.5 trên bản phát hành mới (R2009a) Chương trình sử dụng một số tệp mex và tôi gặp lỗi sau khi cố chạy :chạy tập tin mex cũ trên bản phát hành MATLAB mới

??? Tệp MEX không hợp lệ '/normalizedCut/common_files/sparsifyc.mexglx': normalizedCut/common_files/sparsifyc.mexglx: symbol mxGetIr, phiên bản libmx.INTERNAL không được định nghĩa trong tệp libmx.so với tham chiếu thời gian liên kết.

(mã Tôi đang cố gắng để tun là bình thường hóa cắt bởi Shi & Malic, và có thể được tìm thấy ở đây: http://www.cis.upenn.edu/~jshi/software/files/NcutClustering_7.zip)

Nếu tôi cố gắng chạy mã trên cùng một hệ thống nhưng Matlab 2007a nó chạy được.

Có vấn đề gì với khả năng tương thích ngược cho 2009a không? Có lá cờ nào đó trong hệ thống tôi có thể thay đổi để giúp nó hoạt động không?

Khi tôi googled nó tôi thấy một số tài liệu tham khảo để biến LD_LIBRARY_PATH env, nhưng những gì chính xác nên được thêm vào nó tôi không thể tìm ra.

Cảm ơn, Yair

Trả lời

4

Các mã nguồn cho các chức năng mex dường như có sẵn trong "Hình ảnh Phân khúc với vết cắt bình thường hóa" nguồn trên trang này: http://www.cis.upenn.edu/~jshi/software/ (trong thư mục con specific_NcutImage_files trong .zip giải nén)

0

Nó khá phổ biến đối với có được vấn đề chạy chức năng mex với các phiên bản khác nhau của Matlab. Các lỗi bạn đang nhận được trông giống như chúng là do những thay đổi API trong Matlab (mặc dù điều đó khiến tôi ngạc nhiên một chút). Tôi đã gặp rắc rối nhiều nhất vì sự không tương thích nhị phân gây ra bởi những thay đổi trong gcc. Tôi muốn đề nghị liên hệ với Jiambo và hỏi anh ta xem anh ta có thể xây dựng một phiên bản mới hoặc phát hành nguồn.

Trường hợp xấu nhất, bạn có thể thử triển khai lại các chức năng mex đó. Thuật toán cắt chuẩn hóa khá đơn giản trong Matlab (xem Shi and Malik paper). Bằng tên của các hàm mex, chúng trông giống như chúng chủ yếu nhân bản các chức năng MATLAB hiện có (phép nhân ma trận, sự biến dạng ma trận). Có một cơ hội khác không nếu bạn thực hiện lại chúng như các hàm m-code thông thường, chúng sẽ nhanh hơn do hỗ trợ đa lõi được thêm vào Matlab.

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