Ai đó có thể giải thích tại sao ví dụ A kết quả là vector 1x6 (có ý nghĩa và là điều tôi mong đợi) trong khi ví dụ B kết quả là vector 1x4?Lập chỉ mục thành vector
Ví dụ B nếu tôi xác định trước kích thước của newvec là vector 1x6 thì kết quả là vector 1x6 chính xác. Chỉ cần không hiểu những gì đang xảy ra.
Ví dụ A
vec = [0 2 3 0 5 0] %1x6
newvec(vec == 0) = 1 %produces a 1 x 6 vector
Ví dụ B
vec = [0 2 3 0 5 3] %1 x 6
newvec(vec == 0) = 1 %produces a 1 x 4 vector
ví dụ của bạn không có ý nghĩa. vui lòng thêm mã chính xác cho sự cố bạn gặp phải. mã bạn đã thêm luôn cung cấp một vector 1x6 – ASantosRibeiro
@ASantosRibeiro: không nếu bạn phát hành 'newvec' rõ ràng trước mỗi ví dụ :) –
+1 câu hỏi thú vị. Các câu trả lời cung cấp cho bạn một ý tưởng về những gì đang xảy ra, nhưng chỉ để thêm một cái gì đó. Nếu bạn không có một vectơ trong không gian làm việc và tạo nó bằng cách gán giống như 'A (5) = 1' chẳng hạn (nơi' A' không tồn tại trước đó), matlab sẽ tạo A đủ lớn để đặt '1 'trong phần tử thứ 5 và điền phần còn lại bằng số không. Thử nó. Ngoài ra, bạn cũng có thể mở rộng ma trận theo cách này, ví dụ 'x = 1: 5; x (10) = 1', hãy thử điều đó và bạn sẽ thấy nó lấp đầy các phần tử 6 - 9 với số không. Tôi đoán bạn có thể nghĩ về vấn đề của bạn theo cách tương tự, bạn đã nói với MATLAB để gán cho các vị trí 1 & 4 để nó dừng lại ở 4 – Dan