Tôi có một chuỗi ô được sắp xếp theo thứ tự bảng chữ cái lớn (~ 495 nghìn), với nhiều bản sao (nằm cạnh nhau, vì nó là chữ cái).kết hợp chuỗi trong danh sách được sắp xếp theo thứ tự đại diện (theo cách MATLAB)
Đối với một chuỗi nhìn lên nhất định, tôi cần phải tìm tất cả các chuỗi trong danh sách đó sẽ phù hợp với một trong tôi vượt qua trong.
Tôi đã sử dụng strcmp(lookUpString,list)
để làm điều này, nhưng điều này là cực kỳ chậm - Tôi nghĩ rằng nó đang trải qua từng giá trị trong danh sách để so sánh, bởi vì nó không biết nó được sắp xếp theo thứ tự bảng chữ cái.
Tôi có thể viết một vòng lặp while để lặp qua danh sách để so sánh từng chuỗi bằng cách sử dụng strcmp
cho đến khi tôi tìm khối chuỗi mà tôi muốn (và sau đó dừng), nhưng tôi đã tự hỏi liệu có một cách "matlab" hay không điều này (nghĩa là thực hiện các phép so sánh logic trên một mảng đã sắp xếp).
Cảm ơn sự giúp đỡ của bạn!
Bạn đang sử dụng phiên bản MATLAB nào? Trong tôi, khi tôi tạo một mảng ô 400K 100 ký tự ngẫu nhiên và tìm kiếm một trong số chúng bằng strcmp, nó mất 0,024816 giây. Đó là một tập tin MEX thực sự. Tôi đang sử dụng 2011A. – user930916