2012-01-23 41 views
6

Tôi đã tạo một mảng ô trong Octave. Một số cột chứa phao và một số cột chứa chuỗi. Tôi có thể sắp xếp các mảng tế bào bằng một cột chuỗi (nói col # 4), sử dụng lệnh này:Làm thế nào để sắp xếp một mảng ô trong Octave bằng một cột nổi?

sortrows (mycellarray, 4); 

Nhưng nếu cột tôi muốn sắp xếp theo một cột của nổi, sau đó tôi nhận được thông báo lỗi này:

error: sort: only cell arrays of character strings may be sorted 

Có ai biết cách sắp xếp mảng ô, theo cột nổi không?

Trả lời

6

Chuyển đổi cột có giá trị nổi thành véc-tơ, sắp xếp cột và nhận chỉ mục sắp xếp. Sau đó, bạn có thể áp dụng chỉ mục này cho mảng ô của bạn.

mycellarray = {'a',1,0.5; 'b',2,0.1; 'c',3,4.5; 'd',4,-3.2}; 
vector2sort=cell2mat(mycellarray(:,3)); 
[~,idx] = sort(vector2sort) 
mycellarraysorted = mycellarray(idx,:); 

Tuy nhiên, trong một số phiên bản của Octave, dấu ngã ~ không được xác định. Trong trường hợp đó:

vector2sort = mycellarray(:,3); 
[dummy,idx] = sort(vector2sort); 
mycellarraysorted = mycellarray(idx,:); 
Các vấn đề liên quan