Tôi có hai vectơ, idx1
và idx2
và tôi muốn lấy các giá trị giữa chúng. Nếu idx1
và idx2
là con số và không vectơ, tôi có thể làm điều đó theo cách sau:Vector hóa Notion of Colon (:) - giá trị giữa hai vectơ trong MATLAB
idx1=1;
idx2=5;
values=idx1:idx2
% Result
% values =
%
% 1 2 3 4 5
Nhưng trong trường hợp của tôi, idx1
và idx2
là vectơ có độ dài khác nhau. Ví dụ, đối với chiều dài = 2:
idx1=[5,9];
idx2=[9 11];
Tôi có thể sử dụng toán tử ruột kết trực tiếp có được các giá trị ở giữa? Đây là, một cái gì đó tương tự như sau:
values = [5 6 7 8 9 9 10 11]
Tôi biết tôi có thể làm idx1(1):idx2(1)
và idx1(2):idx2(2)
, điều này được, trích xuất các giá trị cho mỗi cột riêng biệt, vì vậy nếu không có giải pháp khác, tôi có thể làm điều này với một cho vòng lặp, nhưng có lẽ Matlab có thể làm điều này dễ dàng hơn.
'giá trị' không thể có trong MATLAB. Một 5-vector theo chiều dọc concatentated bởi một 3-vector? – petrichor
Có, bạn đúng, xin lỗi. Tôi sẽ sửa nó. Tôi không quan tâm nếu các giá trị là tất cả trong cùng một hàng, tôi chỉ cần tất cả các giá trị giữa các chỉ mục đó. – Digna
Có một bài đăng trên blog tuyệt vời về chủ đề này của Loren tại Mathworks: [Vector hóa Notion of Colon (:)] (http://blogs.mathworks.com/loren/2008/10/13/vectorizing-the-notion- of-colon) – knedlsepp