มีวิธีขยายเวกเตอร์โดยทำให้มันซ้ำหรือไม่?
>v = [1 2];
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl
จากนั้น v10 จะเป็น:
>v10
1 2 1 2 1 2 1 2 1 2
สิ่งนี้ควรใช้ได้กับกรณีทั่วไปไม่ใช่เฉพาะกับ [1 2]
มีวิธีขยายเวกเตอร์โดยทำให้มันซ้ำหรือไม่?
>v = [1 2];
>v10 = v x 5; %x represents some function. Something like "1 2" x 5 in perl
จากนั้น v10 จะเป็น:
>v10
1 2 1 2 1 2 1 2 1 2
สิ่งนี้ควรใช้ได้กับกรณีทั่วไปไม่ใช่เฉพาะกับ [1 2]
คำตอบ:
เห็นได้ชัดว่า repmat เป็นวิธีที่จะไปหากคุณรู้ว่าคุณต้องการขยายเวกเตอร์ไปในทิศทางใด
อย่างไรก็ตามหากคุณต้องการวิธีแก้ปัญหาทั่วไปที่ให้เวกเตอร์ซ้ำในทิศทางที่ยาวที่สุดเสมอการรวมกันของ repmat และการจัดทำดัชนีนี้ควรใช้เคล็ดลับ
v10=v(repmat(1:length(v),1,5))
v=[1 2]
และv100=kron(ones(1,100),v)
เป็นเวกเตอร์v100=[v v ... v]
(100 ครั้ง) หากคุณต้องการที่จะเชื่อมบางคอลัมน์เวกเตอร์y
ด้วยตัวเองครั้งการใช้งานK
yK=kron(ones(K,1),y)