วิธีทำให้โค้ดด้านล่างเป็นเวคเตอร์ได้อย่างไร
ที่นี่ x_cords
และ y_cords
เป็นเวกเตอร์ทั้ง 7894 * 1 และ buffImg
เป็นรูปภาพศูนย์จำลอง และฉันกำลังพยายามแมปสายไฟและรับรูปภาพส่วน
for i = 1:length(x_cords)
buffImg(y_cords(i),x_cords(i)) = 1;
end
วิธีทำให้โค้ดด้านล่างเป็นเวคเตอร์ได้อย่างไร
ที่นี่ x_cords
และ y_cords
เป็นเวกเตอร์ทั้ง 7894 * 1 และ buffImg
เป็นรูปภาพศูนย์จำลอง และฉันกำลังพยายามแมปสายไฟและรับรูปภาพส่วน
for i = 1:length(x_cords)
buffImg(y_cords(i),x_cords(i)) = 1;
end
ในกรณีนี้ คุณต้องแปลงดัชนีตัวห้อยของคุณที่จัดเก็บไว้ใน x_cords
และ y_cords
ให้เป็นดัชนีเชิงเส้นโดยใช้ฟังก์ชัน sub2ind
จากนั้นคุณสามารถกำหนดดัชนีดังกล่าวได้โดยตรงดังนี้:
buffImg=zeros(100,100);
x=randperm(100);
y=randperm(100);
buffImg(sub2ind(size(buffImg),x,y))=1;
เพียงเพื่อแสดงให้คุณเห็นว่าผลลัพธ์ก็เหมือนกัน ต่อไปนี้คือวิธีทดสอบ:
x=randperm(100);
y=randperm(100);
buffImg=zeros(100,100);
buffImg2=zeros(100,100);
for i = 1:length(x)
buffImg(x(i),y(i)) = 1;
end
buffImg2(sub2ind(size(buffImg),x,y))=1;
all(all(buffImg==buffImg2))